{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Car Prices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "\n",
    "# UC Irvine Machine Learning Repository\n",
    "# http://archive.ics.uci.edu/ml/datasets/Automobile\n",
    "\n",
    "url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/autos/imports-85.data'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "header = [\n",
    "    'symboling',\n",
    "    'normalized-losses',\n",
    "    'make',\n",
    "    'fuel-type',\n",
    "    'aspiration',\n",
    "    'num-of-doors',\n",
    "    'body-style',\n",
    "    'drive-wheels',\n",
    "    'engine-location',\n",
    "    'wheel-base',\n",
    "    'length',\n",
    "    'width',\n",
    "    'height',\n",
    "    'curb-weight',\n",
    "    'engine-type',\n",
    "    'num-of-cylinders',\n",
    "    'engine-size',\n",
    "    'fuel-system',\n",
    "    'bore',\n",
    "    'stroke',\n",
    "    'compression-ratio',\n",
    "    'horsepower',\n",
    "    'peak-rpm',\n",
    "    'city-mpg',\n",
    "    'highway-mpg',\n",
    "    'price',\n",
    "\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv(url, names=header, na_values='?') "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>symboling</th>\n",
       "      <th>normalized-losses</th>\n",
       "      <th>make</th>\n",
       "      <th>fuel-type</th>\n",
       "      <th>aspiration</th>\n",
       "      <th>num-of-doors</th>\n",
       "      <th>body-style</th>\n",
       "      <th>drive-wheels</th>\n",
       "      <th>engine-location</th>\n",
       "      <th>wheel-base</th>\n",
       "      <th>...</th>\n",
       "      <th>engine-size</th>\n",
       "      <th>fuel-system</th>\n",
       "      <th>bore</th>\n",
       "      <th>stroke</th>\n",
       "      <th>compression-ratio</th>\n",
       "      <th>horsepower</th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>city-mpg</th>\n",
       "      <th>highway-mpg</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>alfa-romero</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>convertible</td>\n",
       "      <td>rwd</td>\n",
       "      <td>front</td>\n",
       "      <td>88.6</td>\n",
       "      <td>...</td>\n",
       "      <td>130</td>\n",
       "      <td>mpfi</td>\n",
       "      <td>3.47</td>\n",
       "      <td>2.68</td>\n",
       "      <td>9.0</td>\n",
       "      <td>111.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>21</td>\n",
       "      <td>27</td>\n",
       "      <td>13495.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>alfa-romero</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>convertible</td>\n",
       "      <td>rwd</td>\n",
       "      <td>front</td>\n",
       "      <td>88.6</td>\n",
       "      <td>...</td>\n",
       "      <td>130</td>\n",
       "      <td>mpfi</td>\n",
       "      <td>3.47</td>\n",
       "      <td>2.68</td>\n",
       "      <td>9.0</td>\n",
       "      <td>111.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>21</td>\n",
       "      <td>27</td>\n",
       "      <td>16500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>alfa-romero</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>rwd</td>\n",
       "      <td>front</td>\n",
       "      <td>94.5</td>\n",
       "      <td>...</td>\n",
       "      <td>152</td>\n",
       "      <td>mpfi</td>\n",
       "      <td>2.68</td>\n",
       "      <td>3.47</td>\n",
       "      <td>9.0</td>\n",
       "      <td>154.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>19</td>\n",
       "      <td>26</td>\n",
       "      <td>16500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>164.0</td>\n",
       "      <td>audi</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>four</td>\n",
       "      <td>sedan</td>\n",
       "      <td>fwd</td>\n",
       "      <td>front</td>\n",
       "      <td>99.8</td>\n",
       "      <td>...</td>\n",
       "      <td>109</td>\n",
       "      <td>mpfi</td>\n",
       "      <td>3.19</td>\n",
       "      <td>3.40</td>\n",
       "      <td>10.0</td>\n",
       "      <td>102.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>24</td>\n",
       "      <td>30</td>\n",
       "      <td>13950.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   symboling  normalized-losses         make fuel-type aspiration  \\\n",
       "0          3                NaN  alfa-romero       gas        std   \n",
       "1          3                NaN  alfa-romero       gas        std   \n",
       "2          1                NaN  alfa-romero       gas        std   \n",
       "3          2              164.0         audi       gas        std   \n",
       "\n",
       "  num-of-doors   body-style drive-wheels engine-location  wheel-base  ...  \\\n",
       "0          two  convertible          rwd           front        88.6  ...   \n",
       "1          two  convertible          rwd           front        88.6  ...   \n",
       "2          two    hatchback          rwd           front        94.5  ...   \n",
       "3         four        sedan          fwd           front        99.8  ...   \n",
       "\n",
       "   engine-size  fuel-system  bore  stroke compression-ratio horsepower  \\\n",
       "0          130         mpfi  3.47    2.68               9.0      111.0   \n",
       "1          130         mpfi  3.47    2.68               9.0      111.0   \n",
       "2          152         mpfi  2.68    3.47               9.0      154.0   \n",
       "3          109         mpfi  3.19    3.40              10.0      102.0   \n",
       "\n",
       "   peak-rpm city-mpg  highway-mpg    price  \n",
       "0    5000.0       21           27  13495.0  \n",
       "1    5000.0       21           27  16500.0  \n",
       "2    5000.0       19           26  16500.0  \n",
       "3    5500.0       24           30  13950.0  \n",
       "\n",
       "[4 rows x 26 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 205 entries, 0 to 204\n",
      "Data columns (total 26 columns):\n",
      "symboling            205 non-null int64\n",
      "normalized-losses    164 non-null float64\n",
      "make                 205 non-null object\n",
      "fuel-type            205 non-null object\n",
      "aspiration           205 non-null object\n",
      "num-of-doors         203 non-null object\n",
      "body-style           205 non-null object\n",
      "drive-wheels         205 non-null object\n",
      "engine-location      205 non-null object\n",
      "wheel-base           205 non-null float64\n",
      "length               205 non-null float64\n",
      "width                205 non-null float64\n",
      "height               205 non-null float64\n",
      "curb-weight          205 non-null int64\n",
      "engine-type          205 non-null object\n",
      "num-of-cylinders     205 non-null object\n",
      "engine-size          205 non-null int64\n",
      "fuel-system          205 non-null object\n",
      "bore                 201 non-null float64\n",
      "stroke               201 non-null float64\n",
      "compression-ratio    205 non-null float64\n",
      "horsepower           203 non-null float64\n",
      "peak-rpm             203 non-null float64\n",
      "city-mpg             205 non-null int64\n",
      "highway-mpg          205 non-null int64\n",
      "price                201 non-null float64\n",
      "dtypes: float64(11), int64(5), object(10)\n",
      "memory usage: 41.8+ KB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.applymap(\n",
    "    lambda cell: np.nan if cell == '?' else cell\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# cols_with_missing = df.isna().sum()\n",
    "cols_with_missing = df.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "normalized-losses    41\n",
       "num-of-doors          2\n",
       "bore                  4\n",
       "stroke                4\n",
       "horsepower            2\n",
       "peak-rpm              2\n",
       "price                 4\n",
       "dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cols_with_missing[\n",
    "    cols_with_missing > 0\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df[~df['price'].isnull()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.drop(labels=['normalized-losses'], axis=1, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['symboling', 'make', 'fuel-type', 'aspiration', 'num-of-doors',\n",
       "       'body-style', 'drive-wheels', 'engine-location', 'wheel-base', 'length',\n",
       "       'width', 'height', 'curb-weight', 'engine-type', 'num-of-cylinders',\n",
       "       'engine-size', 'fuel-system', 'bore', 'stroke', 'compression-ratio',\n",
       "       'horsepower', 'peak-rpm', 'city-mpg', 'highway-mpg', 'price'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# pd.set_option('display.max_columns', None)\n",
    "pd.set_option('display.max_columns', 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>symboling</th>\n",
       "      <th>make</th>\n",
       "      <th>fuel-type</th>\n",
       "      <th>aspiration</th>\n",
       "      <th>num-of-doors</th>\n",
       "      <th>...</th>\n",
       "      <th>horsepower</th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>city-mpg</th>\n",
       "      <th>highway-mpg</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>alfa-romero</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>...</td>\n",
       "      <td>111.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>21</td>\n",
       "      <td>27</td>\n",
       "      <td>13495.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>alfa-romero</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>...</td>\n",
       "      <td>111.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>21</td>\n",
       "      <td>27</td>\n",
       "      <td>16500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>alfa-romero</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>...</td>\n",
       "      <td>154.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>19</td>\n",
       "      <td>26</td>\n",
       "      <td>16500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>audi</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>four</td>\n",
       "      <td>...</td>\n",
       "      <td>102.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>24</td>\n",
       "      <td>30</td>\n",
       "      <td>13950.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>audi</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>four</td>\n",
       "      <td>...</td>\n",
       "      <td>115.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>18</td>\n",
       "      <td>22</td>\n",
       "      <td>17450.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 25 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   symboling         make fuel-type aspiration num-of-doors  ... horsepower  \\\n",
       "0          3  alfa-romero       gas        std          two  ...      111.0   \n",
       "1          3  alfa-romero       gas        std          two  ...      111.0   \n",
       "2          1  alfa-romero       gas        std          two  ...      154.0   \n",
       "3          2         audi       gas        std         four  ...      102.0   \n",
       "4          2         audi       gas        std         four  ...      115.0   \n",
       "\n",
       "  peak-rpm city-mpg  highway-mpg    price  \n",
       "0   5000.0       21           27  13495.0  \n",
       "1   5000.0       21           27  16500.0  \n",
       "2   5000.0       19           26  16500.0  \n",
       "3   5500.0       24           30  13950.0  \n",
       "4   5500.0       18           22  17450.0  \n",
       "\n",
       "[5 rows x 25 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "features = {\n",
    "    'categorical': [\n",
    "        'make', 'fuel-type', 'aspiration', 'num-of-doors', \n",
    "        'body-style', 'drive-wheels', 'engine-location', \n",
    "        'engine-type', 'num-of-cylinders', 'fuel-system',\n",
    "        \n",
    "    ],\n",
    "    'numerical': [\n",
    "        'symboling', 'wheel-base', 'length', 'width', 'height', \n",
    "        'curb-weight', 'engine-size', 'bore', 'stroke', \n",
    "        'compression-ratio', 'horsepower', 'peak-rpm', \n",
    "        'city-mpg', 'highway-mpg', \n",
    "    ],\n",
    "}\n",
    "\n",
    "features['all'] = features['categorical'] + features['numerical']\n",
    "\n",
    "target = 'price'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "df[target] = df[target].astype(np.float64) / 1000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>make</th>\n",
       "      <th>fuel-type</th>\n",
       "      <th>aspiration</th>\n",
       "      <th>num-of-doors</th>\n",
       "      <th>body-style</th>\n",
       "      <th>drive-wheels</th>\n",
       "      <th>engine-location</th>\n",
       "      <th>engine-type</th>\n",
       "      <th>num-of-cylinders</th>\n",
       "      <th>fuel-system</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>nissan</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>hardtop</td>\n",
       "      <td>fwd</td>\n",
       "      <td>front</td>\n",
       "      <td>ohc</td>\n",
       "      <td>four</td>\n",
       "      <td>2bbl</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>bmw</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>sedan</td>\n",
       "      <td>rwd</td>\n",
       "      <td>front</td>\n",
       "      <td>ohc</td>\n",
       "      <td>six</td>\n",
       "      <td>mpfi</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>honda</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>fwd</td>\n",
       "      <td>front</td>\n",
       "      <td>ohc</td>\n",
       "      <td>four</td>\n",
       "      <td>1bbl</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      make fuel-type aspiration num-of-doors body-style drive-wheels  \\\n",
       "98  nissan       gas        std          two    hardtop          fwd   \n",
       "16     bmw       gas        std          two      sedan          rwd   \n",
       "31   honda       gas        std          two  hatchback          fwd   \n",
       "\n",
       "   engine-location engine-type num-of-cylinders fuel-system  \n",
       "98           front         ohc             four        2bbl  \n",
       "16           front         ohc              six        mpfi  \n",
       "31           front         ohc             four        1bbl  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[features['categorical']].sample(n=3, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>symboling</th>\n",
       "      <th>wheel-base</th>\n",
       "      <th>length</th>\n",
       "      <th>width</th>\n",
       "      <th>height</th>\n",
       "      <th>...</th>\n",
       "      <th>compression-ratio</th>\n",
       "      <th>horsepower</th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>city-mpg</th>\n",
       "      <th>highway-mpg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>88.6</td>\n",
       "      <td>168.8</td>\n",
       "      <td>64.1</td>\n",
       "      <td>48.8</td>\n",
       "      <td>...</td>\n",
       "      <td>9.0</td>\n",
       "      <td>111.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>21</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>88.6</td>\n",
       "      <td>168.8</td>\n",
       "      <td>64.1</td>\n",
       "      <td>48.8</td>\n",
       "      <td>...</td>\n",
       "      <td>9.0</td>\n",
       "      <td>111.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>21</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>94.5</td>\n",
       "      <td>171.2</td>\n",
       "      <td>65.5</td>\n",
       "      <td>52.4</td>\n",
       "      <td>...</td>\n",
       "      <td>9.0</td>\n",
       "      <td>154.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>19</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3 rows × 14 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   symboling  wheel-base  length  width  height  ...  compression-ratio  \\\n",
       "0          3        88.6   168.8   64.1    48.8  ...                9.0   \n",
       "1          3        88.6   168.8   64.1    48.8  ...                9.0   \n",
       "2          1        94.5   171.2   65.5    52.4  ...                9.0   \n",
       "\n",
       "   horsepower  peak-rpm  city-mpg  highway-mpg  \n",
       "0       111.0    5000.0        21           27  \n",
       "1       111.0    5000.0        21           27  \n",
       "2       154.0    5000.0        19           26  \n",
       "\n",
       "[3 rows x 14 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[features['numerical']].head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "df_train, df_test = train_test_split(df, test_size=0.25, random_state=22)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train = df_train[features['all']]\n",
    "x_test  = df_test[features['all']]\n",
    "\n",
    "y_train = df_train[target]\n",
    "y_test  = df_test[target]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    150.000000\n",
       "mean      13.724267\n",
       "std        8.224519\n",
       "min        5.118000\n",
       "25%        7.961500\n",
       "50%       11.072000\n",
       "75%       16.678750\n",
       "max       45.400000\n",
       "Name: price, dtype: float64"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:13: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  del sys.path[0]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 1, figsize=(16, 5), sharey=False)\n",
    "\n",
    "y_train.plot(\n",
    "    title=\"Distribution of Car Prices (in 1000's)\",\n",
    "    kind='hist', \n",
    "    bins=11,\n",
    "    color='k',\n",
    "    ax=ax\n",
    ")\n",
    "\n",
    "ax.set_xlabel('Car Price / 1000')\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.impute import SimpleImputer\n",
    "\n",
    "imp = SimpleImputer(missing_values=np.nan, strategy='most_frequent')\n",
    "\n",
    "x_train = imp.fit_transform(x_train)\n",
    "x_test = imp.transform(x_test)\n",
    "\n",
    "x_train = pd.DataFrame(x_train, columns=features['all'])\n",
    "x_test = pd.DataFrame(x_test, columns=features['all'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.base import BaseEstimator, TransformerMixin\n",
    "\n",
    "class ColumnNamesKeeper(TransformerMixin, BaseEstimator):\n",
    "    \n",
    "    def __init__(self, transformer):\n",
    "        self._columns = None\n",
    "        self.transformer = transformer\n",
    "        \n",
    "    def __repr__(self):\n",
    "        return repr(self.transformer)\n",
    "    \n",
    "    def fit(self, x, y=None):\n",
    "        self._columns = x.columns\n",
    "        self.transformer.fit(x)\n",
    "    \n",
    "    def transform(self, x, y=None):\n",
    "        x = self.transformer.transform(x)\n",
    "        return pd.DataFrame(x, columns=self._columns)\n",
    "        \n",
    "    def fit_transform(self, x, y=None):\n",
    "        self.fit(x, y)\n",
    "        return self.transform(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.impute import SimpleImputer\n",
    "\n",
    "imp = ColumnNamesKeeper(\n",
    "    SimpleImputer(missing_values=np.nan, strategy='most_frequent')\n",
    ")\n",
    "\n",
    "x_train = imp.fit_transform(x_train)\n",
    "x_test = imp.transform(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Missing values in train: 0, and in test: 0\n"
     ]
    }
   ],
   "source": [
    "print(\n",
    "    'Missing values in train: {}, and in test: {}'.format(\n",
    "        x_train.isnull().sum().sum(),\n",
    "        x_test.isnull().sum().sum(),\n",
    "    )\n",
    ") "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>make</th>\n",
       "      <th>fuel-type</th>\n",
       "      <th>aspiration</th>\n",
       "      <th>num-of-doors</th>\n",
       "      <th>body-style</th>\n",
       "      <th>...</th>\n",
       "      <th>compression-ratio</th>\n",
       "      <th>horsepower</th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>city-mpg</th>\n",
       "      <th>highway-mpg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>volkswagen</td>\n",
       "      <td>diesel</td>\n",
       "      <td>std</td>\n",
       "      <td>four</td>\n",
       "      <td>sedan</td>\n",
       "      <td>...</td>\n",
       "      <td>23</td>\n",
       "      <td>52</td>\n",
       "      <td>4800</td>\n",
       "      <td>37</td>\n",
       "      <td>46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>mercury</td>\n",
       "      <td>gas</td>\n",
       "      <td>turbo</td>\n",
       "      <td>two</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>...</td>\n",
       "      <td>8</td>\n",
       "      <td>175</td>\n",
       "      <td>5000</td>\n",
       "      <td>19</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>nissan</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>four</td>\n",
       "      <td>wagon</td>\n",
       "      <td>...</td>\n",
       "      <td>9.4</td>\n",
       "      <td>69</td>\n",
       "      <td>5200</td>\n",
       "      <td>31</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>toyota</td>\n",
       "      <td>gas</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>...</td>\n",
       "      <td>9.3</td>\n",
       "      <td>161</td>\n",
       "      <td>5200</td>\n",
       "      <td>20</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         make fuel-type aspiration num-of-doors body-style  ...  \\\n",
       "0  volkswagen    diesel        std         four      sedan  ...   \n",
       "1     mercury       gas      turbo          two  hatchback  ...   \n",
       "2      nissan       gas        std         four      wagon  ...   \n",
       "3      toyota       gas        std          two  hatchback  ...   \n",
       "\n",
       "  compression-ratio horsepower peak-rpm city-mpg highway-mpg  \n",
       "0                23         52     4800       37          46  \n",
       "1                 8        175     5000       19          24  \n",
       "2               9.4         69     5200       31          37  \n",
       "3               9.3        161     5200       20          24  \n",
       "\n",
       "[4 rows x 24 columns]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train.head(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "from category_encoders.ordinal import OrdinalEncoder\n",
    "\n",
    "enc = OrdinalEncoder(\n",
    "    cols=features['categorical'],\n",
    "    handle_unknown='value'\n",
    ")\n",
    "\n",
    "x_train = enc.fit_transform(x_train)\n",
    "x_test = enc.transform(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>make</th>\n",
       "      <th>fuel-type</th>\n",
       "      <th>aspiration</th>\n",
       "      <th>num-of-doors</th>\n",
       "      <th>body-style</th>\n",
       "      <th>...</th>\n",
       "      <th>compression-ratio</th>\n",
       "      <th>horsepower</th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>city-mpg</th>\n",
       "      <th>highway-mpg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>23</td>\n",
       "      <td>52</td>\n",
       "      <td>4800</td>\n",
       "      <td>37</td>\n",
       "      <td>46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>8</td>\n",
       "      <td>175</td>\n",
       "      <td>5000</td>\n",
       "      <td>19</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>9.4</td>\n",
       "      <td>69</td>\n",
       "      <td>5200</td>\n",
       "      <td>31</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>9.3</td>\n",
       "      <td>161</td>\n",
       "      <td>5200</td>\n",
       "      <td>20</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   make  fuel-type  aspiration  num-of-doors  body-style  ...  \\\n",
       "0     1          1           1             1           1  ...   \n",
       "1     2          2           2             2           2  ...   \n",
       "2     3          2           1             1           3  ...   \n",
       "3     4          2           1             2           2  ...   \n",
       "\n",
       "   compression-ratio  horsepower  peak-rpm  city-mpg  highway-mpg  \n",
       "0                 23          52      4800        37           46  \n",
       "1                  8         175      5000        19           24  \n",
       "2                9.4          69      5200        31           37  \n",
       "3                9.3         161      5200        20           24  \n",
       "\n",
       "[4 rows x 24 columns]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train.head(4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Random Forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import RandomForestRegressor\n",
    "\n",
    "rgr = RandomForestRegressor(n_jobs=-1)\n",
    "\n",
    "rgr.fit(x_train, y_train)\n",
    "y_test_pred = rgr.predict(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RandomForestRegressor(bootstrap=True, ccp_alpha=0.0, criterion='mse',\n",
      "                      max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
      "                      max_samples=None, min_impurity_decrease=0.0,\n",
      "                      min_impurity_split=None, min_samples_leaf=1,\n",
      "                      min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
      "                      n_estimators=100, n_jobs=-1, oob_score=False,\n",
      "                      random_state=None, verbose=0, warm_start=False)\n"
     ]
    }
   ],
   "source": [
    "print(rgr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R2: 0.90, MSE: 4.61, RMSE: 2.15, MAE 1.38\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import (\n",
    "    mean_squared_error, mean_absolute_error, median_absolute_error, r2_score\n",
    ")\n",
    "\n",
    "print(\n",
    "    'R2: {:.2f}, MSE: {:.2f}, RMSE: {:.2f}, MAE {:.2f}'.format(\n",
    "        r2_score(y_test, y_test_pred),\n",
    "        mean_squared_error(y_test, y_test_pred),\n",
    "        np.sqrt(mean_squared_error(y_test, y_test_pred)),\n",
    "        mean_absolute_error(y_test, y_test_pred),\n",
    "    )\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:30: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_pred = pd.DataFrame(\n",
    "    {\n",
    "        'actuals': y_test,\n",
    "        'predictions': y_test_pred,\n",
    "    }\n",
    ")\n",
    "\n",
    "df_pred['error'] = np.abs(y_test - y_test_pred)\n",
    "\n",
    "fig, axs = plt.subplots(1, 2, figsize=(16, 5), sharey=False)\n",
    "\n",
    "df_pred.plot(\n",
    "    title='Actuals vs Predictions',\n",
    "    kind='scatter',\n",
    "    x='actuals',\n",
    "    y='predictions',\n",
    "    color='k',\n",
    "    ax=axs[0],\n",
    ")\n",
    "\n",
    "df_pred['error'].plot(\n",
    "    title='Distribution of Error',\n",
    "    kind='hist',\n",
    "    color='k',\n",
    "    ax=axs[1],\n",
    ")\n",
    "\n",
    "axs[1].set_xlabel('Absolute Error')\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "pd.set_option('display.max_rows', 8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Feature</th>\n",
       "      <th>Importance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>engine-size</td>\n",
       "      <td>0.655914</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>curb-weight</td>\n",
       "      <td>0.224738</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>highway-mpg</td>\n",
       "      <td>0.024662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>width</td>\n",
       "      <td>0.016323</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>engine-type</td>\n",
       "      <td>0.000939</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>num-of-cylinders</td>\n",
       "      <td>0.000753</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>fuel-type</td>\n",
       "      <td>0.000747</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>engine-location</td>\n",
       "      <td>0.000014</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>24 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             Feature  Importance\n",
       "16       engine-size    0.655914\n",
       "15       curb-weight    0.224738\n",
       "23       highway-mpg    0.024662\n",
       "13             width    0.016323\n",
       "..               ...         ...\n",
       "7        engine-type    0.000939\n",
       "8   num-of-cylinders    0.000753\n",
       "1          fuel-type    0.000747\n",
       "6    engine-location    0.000014\n",
       "\n",
       "[24 rows x 2 columns]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_feature_importances = pd.DataFrame(\n",
    "    {\n",
    "        'Feature': x_train.columns,\n",
    "        'Importance': rgr.feature_importances_,\n",
    "    }\n",
    ").sort_values(\n",
    "    'Importance', ascending=False\n",
    ")\n",
    "\n",
    "df_feature_importances"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "pd.set_option('display.max_rows', 50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:18: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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y7aIiIiIiIhIlinZFhEREREREckydSMXERERERERyTK1bIuIiIiIiIhkWawHRqmsrFSzu4jkRHl5uRU6hmxSfSkiudDV6kpQfSkiuZGuvlTLtoiIiIiIiEiWKdkWERERERERybJYdyNPVlFRwcSJEwsdRlboWOKnqxwHtH4sjY2NfPzxx6xYsYLly5ezYsUKVqxYwcqVK5ver1q1ioaGhrzE26NHD0aOHMno0aObXqNGjWL06NE0Njay//77M3ToUIqK9L/BuIjT9RKnWCBe8SiW9BRLZnGLpxDicA4Ug2JQDF0nhk6TbIt0VGNjI8uWLWPTpk1s3ryZzZs3N71///336dOnD1VVVVRVVbF58+ZtflZXV9PY2Ni0veSR/FNH9W9pOuo8d296pU63VN7Q0EBRUdE28xPva2pqqK+vb/sJbAczY8SIEc0S6NGjRzNmzJim98OHD6dHjx5p16+oqGD48OF5iVVEREREJJuUbEuXV19fz1133cX111/P6tWrCx1OlzJs2LC0SXSibOTIkZSUlBQ6TBERERGRvFOyLV3as88+y89+9jMWLFhQ6FA6nUGDBjVLolOT6pEjR9KzZ89ChykiIiIiEktKtqVLeu+99/j5z3/Ok08+WehQYqm8vLzZPdLJr0Qi3bt370KHKSIiIiLSaSnZli5l3bp1XHfdddxxxx1p70vu1asX48ePp2/fvvTp06fp1dDQwOjRo+nTpw99+/ZtNj8x3bt3723uLTaztO+jTLe2HTNr9kpXlq58yZIl7LDDDmnnARQXF1NWVtbyiRQRERERkQ5Rsi1dQl1dHbfddhu//OUv2bBhQ9plTjzxRC677DJGjRq1zbw4jHCYLZ988gkDBw4sdBgiIiIiIt2akm3p1NydJ598kp/97GcsWrQo7TL77bcfv/jFL9hrr73yHJ2IiIiIiHRXSral01q7di1nnXUWs2bNSjt/u+2246qrruKYY45psQu3iIiIiIhItinZlk7rvPPOS5to9+vXjx//+MecffbZ9OrVqwCRiYiIiIhId6dkWzqtN954o9m0mXHqqady6aWXMmzYsAJFJSIiIiIiomRbOrG6urpm00888QT77bdfgaIRERERERH5VFGhAxBpr9RHe+28884FikRERERERKQ5JdvSaTU0NDSbTn0GtoiIiIiISKEo2ZZOKzXZLi7WXREiIiIi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TyTkUQ0cOJCdd965Q7GIiIjkS5uzFHdvBO7OQSwikSjZFhH5VH19PatXr2blypW88MILTJ8+nXfffbfD281Woi0iItJdZcxSzOwWd/9u+P5uPn3UVzPufmqOYhNJS93IRUQCf/rTn7jyyivZsGFD1ra5++67c8QRR3DOOecwaNCgrG1XRESku2mpSfD9pPeLch2ISFQaIE1EBFauXMlFF11EXV1du7cxceJEfvSjHzFixAiKi4uZNGkSw4YNy2KUIiIi3VfGZNvdr02a/KO7r05dxsxG5CQqkRaoZVtEBJ599tmMiXZxcTG77747O+64I8OGDWPo0KEMHjyYmpoaPvzwQ6qrq9l333059thjdSuOiIhIjkT9C/se0D9N+QJAfcwkr3TPtogIPP/8882mt99+ez7zmc9w6KGHMmXKFNatW5d2UDIRERHJj6hZim1TYNYfaHkYU5EcULItIt2duzN79uxmZf/7v//LAQcc0DS9bt26fIclIiIiSVrMUsxsGcHAaGVm9mHK7MHAfbkKTCST1G7kRUVFBYpERKQw3nvvPT766KOm6d69e7P33nsXMCIRERFJ1VqT4MkErdqPA6cklTvwkbt3/NkiIm2UmmyrZVtEupvUVu0DDjiA0tLSAkUjIiIi6bSYpbj7bDPrATwCvOLuNfkJSySzxsbmdy8o2RaR7iY12T744IMLFImIiIhk0mr/W3dvAA5C92dLTGg0chHpzhoaGnjxxReblR100EEFikZEREQyiXqz6w3AlWZWkstgRKLQAGki0p3NnTuXysrKpulBgwax++67FzAiERERSSdqlvJfwAjgx2b2McE92wC4+3a5CEwkEw2QJiLd2dNPP91sevLkyaoHRUREYihqsn1yTqMQaQO1bItIdzV79mx+/etfNyvT/doiIiLxFClLcffZrS8lkh9KtkWku6mpqeH555/njDPOoLa2tqm8rKyMo446qoCRiYiISCaRsxQz2wOYDAwheBwYAO5+WQ7iEslIA6SJSHfx8ccfM23aNJ588km2bNmyzfwbb7yRESNGFCAyERERaU2km7zM7LvAP4HDgJ8AuwMXADvmLjSR9JRsi0h3MW3aNB5++OG0ifbVV1/NN7/5zQJEJSIiIlFEHVHlIuBId58CbAl/Hg/URVnZzO4wszVm9nZS2RVmtsLM3gxf6gcnkagbuYh0B0uX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\n",
      "text/plain": [
       "<Figure size 1080x504 with 7 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.inspection import plot_partial_dependence\n",
    "\n",
    "fig, ax = plt.subplots(1, 1, figsize=(15, 7), sharey=False)\n",
    "\n",
    "top_features = df_feature_importances['Feature'].head(6)\n",
    "\n",
    "plot_partial_dependence(\n",
    "    rgr, x_train, \n",
    "    features=top_features,\n",
    "    n_cols=3, \n",
    "    n_jobs=-1,\n",
    "    line_kw={'color': 'k'},\n",
    "    ax=ax\n",
    ") \n",
    "\n",
    "ax.set_title('Partial Dependence')\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Shall I also write about permutation_importance.\n",
    "# Tip: impurity-based feature importance can inflate the importance of numerical features.\n",
    "# https://scikit-learn.org/stable/auto_examples/inspection/plot_permutation_importance.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import RandomForestRegressor\n",
    "from sklearn.metrics import (\n",
    "    mean_squared_error, mean_absolute_error, median_absolute_error, r2_score\n",
    ")\n",
    "\n",
    "\n",
    "mae = []\n",
    "mse = []\n",
    "\n",
    "n_estimators_options = [5, 500, 5000]\n",
    "\n",
    "for n_estimators in n_estimators_options:\n",
    "\n",
    "    rgr = RandomForestRegressor(\n",
    "        n_estimators=n_estimators,\n",
    "        bootstrap=True,\n",
    "        max_features=0.75,\n",
    "        max_samples=0.75,\n",
    "        n_jobs=-1,\n",
    "    )\n",
    "\n",
    "    rgr.fit(x_train, y_train)\n",
    "    y_test_pred = rgr.predict(x_test)\n",
    "    \n",
    "    mae.append(mean_absolute_error(y_test, y_test_pred))\n",
    "    mse.append(mean_squared_error(y_test, y_test_pred))\n",
    "    \n",
    "df_error = pd.DataFrame(\n",
    "    {\n",
    "        'n_estimators': n_estimators_options,\n",
    "        'MAE': mae,\n",
    "        'MSE': mse\n",
    "    }\n",
    ").set_index('n_estimators')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MAE</th>\n",
       "      <th>MSE</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>n_estimators</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.876188</td>\n",
       "      <td>7.494696</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>500</th>\n",
       "      <td>1.375638</td>\n",
       "      <td>4.395651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5000</th>\n",
       "      <td>1.388308</td>\n",
       "      <td>4.339096</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   MAE       MSE\n",
       "n_estimators                    \n",
       "5             1.876188  7.494696\n",
       "500           1.375638  4.395651\n",
       "5000          1.388308  4.339096"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:13: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  del sys.path[0]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 1, figsize=(16, 5), sharey=False)\n",
    "\n",
    "df_error['MAE'].plot(\n",
    "    title=\"Mean Absolute Error (Random Forest)\",\n",
    "    kind='bar',\n",
    "    ylim=(1.1,1.7),\n",
    "    color='k',\n",
    "    ax=ax\n",
    ")\n",
    "\n",
    "ax.set_ylabel('MAE')\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Bagging Regressor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import BaggingRegressor\n",
    "from sklearn.neighbors import KNeighborsRegressor\n",
    "\n",
    "# Compare to when K > 1; performance is worse then\n",
    "rgr = BaggingRegressor(\n",
    "    base_estimator=KNeighborsRegressor(n_neighbors=1),\n",
    "    n_estimators=200,\n",
    ")\n",
    "\n",
    "rgr.fit(x_train, y_train)\n",
    "y_test_pred = rgr.predict(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R2: 0.81, MSE: 8.80, MAE: 1.82\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import (\n",
    "    mean_squared_error, mean_absolute_error, median_absolute_error, r2_score\n",
    ")\n",
    "\n",
    "print(\n",
    "    'R2: {:.2f}, MSE: {:.2f}, MAE: {:.2f}'.format(\n",
    "        r2_score(df_test[target], y_test_pred),\n",
    "        mean_squared_error(df_test[target], y_test_pred),\n",
    "        mean_absolute_error(df_test[target], y_test_pred),\n",
    "    )\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "class ColumnNamesKeeper:\n",
    "    \n",
    "    def __init__(self, transformer):\n",
    "        self._columns = None\n",
    "        self.transformer = transformer\n",
    "        \n",
    "    def __repr__(self):\n",
    "        return repr(self.transformer)\n",
    "    \n",
    "    def fit(self, x, y=None):\n",
    "        self._columns = x.columns\n",
    "        self.transformer.fit(x)\n",
    "    \n",
    "    def transform(self, x, y=None):\n",
    "        x = self.transformer.transform(x)\n",
    "        return pd.DataFrame(x, columns=self._columns)\n",
    "        \n",
    "    def fit_transform(self, x, y=None):\n",
    "        self.fit(x, y)\n",
    "        return self.transform(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "from sklearn.impute import SimpleImputer\n",
    "from category_encoders.one_hot import OneHotEncoder\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from sklearn.pipeline import Pipeline\n",
    "\n",
    "numerical_mputer = ColumnNamesKeeper(\n",
    "    SimpleImputer(\n",
    "        missing_values=np.nan, \n",
    "        strategy='median'\n",
    "    )\n",
    ")\n",
    "\n",
    "categorical_mputer = ColumnNamesKeeper(\n",
    "    SimpleImputer(\n",
    "        missing_values=np.nan, \n",
    "        strategy='most_frequent'\n",
    "    )\n",
    ")\n",
    "\n",
    "minmax_scaler = ColumnNamesKeeper(\n",
    "    MinMaxScaler()\n",
    ") \n",
    "\n",
    "onehot_encoder = OneHotEncoder(\n",
    "    cols=features['categorical'],\n",
    "    handle_unknown='value'\n",
    ")\n",
    "\n",
    "numerical_pipeline = Pipeline(\n",
    "    [\n",
    "        ('numerical_mputer', numerical_mputer), \n",
    "        ('minmax_scaler', minmax_scaler)\n",
    "    ]\n",
    ")\n",
    "\n",
    "categorical_pipeline = Pipeline(\n",
    "    [\n",
    "        ('categorical_mputer', categorical_mputer), \n",
    "        ('onehot_encoder', onehot_encoder)\n",
    "    ]\n",
    ")\n",
    "\n",
    "x_train_knn = pd.concat(\n",
    "    [\n",
    "        numerical_pipeline.fit_transform(df_train[features['numerical']]), \n",
    "        categorical_pipeline.fit_transform(df_train[features['categorical']]),\n",
    "    ],\n",
    "    axis=1\n",
    ")\n",
    "\n",
    "x_test_knn = pd.concat(\n",
    "    [\n",
    "        numerical_pipeline.transform(df_test[features['numerical']]), \n",
    "        categorical_pipeline.transform(df_test[features['categorical']]),\n",
    "    ],\n",
    "    axis=1\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import BaggingRegressor\n",
    "from sklearn.neighbors import KNeighborsRegressor\n",
    "\n",
    "rgr = BaggingRegressor(\n",
    "    base_estimator=KNeighborsRegressor(\n",
    "        n_neighbors=1\n",
    "    ),\n",
    "    n_estimators=400,\n",
    ")\n",
    "\n",
    "rgr.fit(x_train_knn, y_train)\n",
    "y_test_pred = rgr.predict(x_test_knn)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R2: 0.87, MSE: 6.31, MAE: 1.75\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import (\n",
    "    mean_squared_error, mean_absolute_error, median_absolute_error, r2_score\n",
    ")\n",
    "\n",
    "print(\n",
    "    'R2: {:.2f}, MSE: {:.2f}, MAE: {:.2f}'.format(\n",
    "        r2_score(df_test[target], y_test_pred),\n",
    "        mean_squared_error(df_test[target], y_test_pred),\n",
    "        mean_absolute_error(df_test[target], y_test_pred),\n",
    "    )\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "rgr = KNeighborsRegressor(\n",
    "    n_neighbors=3\n",
    ")\n",
    "\n",
    "rgr.fit(x_train_knn, y_train)\n",
    "y_test_pred = rgr.predict(x_test_knn)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R2: 0.87, MSE: 6.09, MAE: 1.84\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import (\n",
    "    mean_squared_error, mean_absolute_error, median_absolute_error, r2_score\n",
    ")\n",
    "\n",
    "print(\n",
    "    'R2: {:.2f}, MSE: {:.2f}, MAE: {:.2f}'.format(\n",
    "        r2_score(df_test[target], y_test_pred),\n",
    "        mean_squared_error(df_test[target], y_test_pred),\n",
    "        mean_absolute_error(df_test[target], y_test_pred),\n",
    "    )\n",
    ")"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "## Bias Varias <- Seems like bad implementation here, needs more research\n",
    "\n",
    "def calculate_bias_variance(y_true, y_pred):\n",
    "    bias = ((y_true -  y_pred.mean()) ** 2).mean()\n",
    "    variance = ((y_pred -  y_pred.mean()) ** 2).mean()\n",
    "    total = bias + variance\n",
    "    return bias / total, variance / total\n",
    "\n",
    "calculate_bias_variance(y_test, y_test_pred)"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "n_estimators = []\n",
    "bias_ratios = []\n",
    "variance_ratios = []\n",
    "\n",
    "for n in range(1, 22, 4):\n",
    "    rgr = BaggingRegressor(\n",
    "        n_estimators=n,\n",
    "        n_jobs=-1,\n",
    "    )\n",
    "\n",
    "    rgr.fit(x_train, y_train)\n",
    "    y_test_pred = rgr.predict(x_test)\n",
    "\n",
    "    b, v = calculate_bias_variance(y_test, y_test_pred)\n",
    "    \n",
    "    n_estimators.append(n)\n",
    "    bias_ratios.append(b)\n",
    "    variance_ratios.append(v)\n",
    "    \n",
    "df_bias_variance = pd.DataFrame(\n",
    "    {\n",
    "        'n_estimators': n_estimators,\n",
    "        'bias_ratio': bias_ratios,\n",
    "        'variance_ratio': variance_ratios,\n",
    "    }\n",
    ")"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "df_bias_variance.set_index('n_estimators').plot(kind='line')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Gradient Boosting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "\n",
    "rgr = GradientBoostingRegressor(n_estimators=1000, max_depth=3, learning_rate=0.01, loss='ls')\n",
    "\n",
    "rgr.fit(x_train, y_train)\n",
    "y_test_pred = rgr.predict(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R2: 0.92, MSE: 3.93, RMSE: 1.98, MAE: 1.42\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import (\n",
    "    mean_squared_error, mean_absolute_error, median_absolute_error, r2_score\n",
    ")\n",
    "\n",
    "print(\n",
    "    'R2: {:.2f}, MSE: {:.2f}, RMSE: {:.2f}, MAE: {:.2f}'.format(\n",
    "        r2_score(y_test, y_test_pred),\n",
    "        mean_squared_error(y_test, y_test_pred),\n",
    "        np.sqrt(mean_squared_error(y_test, y_test_pred)),\n",
    "        mean_absolute_error(y_test, y_test_pred),\n",
    "    )\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Random Forest\n",
    "# R2: 0.91, MSE: 4.16, RMSE: 2.04, MAE 1.31"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:28: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_pred = pd.DataFrame(\n",
    "    {\n",
    "        'actuals': y_test,\n",
    "        'predictions': y_test_pred,\n",
    "    }\n",
    ")\n",
    "\n",
    "df_pred['error'] = np.abs(y_test - y_test_pred)\n",
    "\n",
    "fig, axs = plt.subplots(1, 2, figsize=(16, 5), sharey=False)\n",
    "\n",
    "df_pred.plot(\n",
    "    title='Actuals vs Predictions',\n",
    "    kind='scatter',\n",
    "    x='actuals',\n",
    "    y='predictions',\n",
    "    color='k',\n",
    "    ax=axs[0],\n",
    ")\n",
    "\n",
    "df_pred['error'].plot(\n",
    "    title='Distribution of Error',\n",
    "    kind='hist',\n",
    "    color='k',\n",
    "    ax=axs[1],\n",
    ")\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Feature</th>\n",
       "      <th>Importance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>engine-size</td>\n",
       "      <td>0.669384</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>curb-weight</td>\n",
       "      <td>0.185760</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>horsepower</td>\n",
       "      <td>0.028542</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>highway-mpg</td>\n",
       "      <td>0.019564</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>fuel-system</td>\n",
       "      <td>0.018312</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>city-mpg</td>\n",
       "      <td>0.013506</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>width</td>\n",
       "      <td>0.011792</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>length</td>\n",
       "      <td>0.007373</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Feature  Importance\n",
       "16  engine-size    0.669384\n",
       "15  curb-weight    0.185760\n",
       "20   horsepower    0.028542\n",
       "23  highway-mpg    0.019564\n",
       "9   fuel-system    0.018312\n",
       "22     city-mpg    0.013506\n",
       "13        width    0.011792\n",
       "12       length    0.007373"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_feature_importances = pd.DataFrame(\n",
    "    {\n",
    "        'Feature': x_train.columns,\n",
    "        'Importance': rgr.feature_importances_,\n",
    "    }\n",
    ").sort_values(\n",
    "    'Importance', ascending=False\n",
    ")\n",
    "\n",
    "df_feature_importances.head(8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:18: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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s5XWrVvHunXtcY+6xx9/nC9+8YtcfvnlDBs20BUJktrZ3Llz+eEPf8j2228PsMmPeF16zuttmTLLDWbdXX+HDx/OxIkTOfbYY9lnn31seyQ13cKFC/t8be3ataxdu3ZQ67333nu59957efvb387ZZ5/NjBkzBhtRUpvqt+DOzKlNytEwq1b5pLKq3XTTTXz729/mjDPOaHUUSVvh4Ycf5oILLmh1jNLOPfdcJkyYwO/8zu9w6KGHcthhhzFjxgy22267VkeTNMT1V3A3wr//+7/zrne9i+OOO46zzjqLN73pTZVuT1LzlHoOdyeZOHEiixYtYtWqVZsNL7/8MitXruwer39tMEfFV61axfjx4xuWff369axcuZLly5ezYsWK7mEw11tD7VSlXXbZhcmTJ282jB07tvR6MpNzzz2XX/7yl93z/vqv/5oDDzyQ9773vYPKJkmDsWLFCu68807uvPPO7nl77733JgX4vvvuy/Dhw1uYUtJQc8EFF7BgwYLu++LU/33llVcatp3rr7+em266iVNOOYXTTz+dnXbaieHDh3u6udTBWl5wR8QxwPnAcOAHmXneVq6Pbbfdlm233bbym3vNmzeP6dOnV7qNzGT16tVs2LChu7GNiE2GJ554gr322muz926zzTaMGNGY/8T77rsvRx99dPd18ZnJZz/7We68805/hZU61FDpwD3++OM8/vjj/OhHPwJg/Pjx3UfBu4ZJkya1OKWkTnbkkUf2Oj8zeeihh5g2bdoWr/Opp57iW9/6Frfffvsm8zds2MBFF13ERRddBNTa6q7rxLuG0aNHM378+O6bA3cN48aNY82aNey444595u3PuHHjmDRp0mbDdtttN6jr1CW1uOCOiOHUnvX9bmAhMDsibsjMR1uZq510/YDQn9GjRzNmzJhKc7zxjW/kkksu4fjjj+fVV18FakeaTjrpJG677bZKty2pGvvttx+nnnpq9zXcwCY/7NX/7e+1Rv2tV//aihUruPvuu3n00UdZtmzZgJ9r5cqV/PznP+fnP/9597zp06dvUoC/+c1v9ii4pK3W1U8bzM1kDz74YK699lpmzZrFN77xDebMmdPrcpnJmjVrWn6PoqlTp3LcccfxoQ99iAMPPHDI/GgrVa3VR7gPA57IzKcAIuJK4DjAgrsNzZw5k7PPPpu/+Iu/6J73q1/9ii996Uv8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\n",
      "text/plain": [
       "<Figure size 1080x504 with 7 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.inspection import plot_partial_dependence\n",
    "\n",
    "fig, ax = plt.subplots(1, 1, figsize=(15, 7), sharey=False)\n",
    "\n",
    "top_features = df_feature_importances['Feature'].head(6)\n",
    "\n",
    "plot_partial_dependence(\n",
    "    rgr, x_train, \n",
    "    features=top_features,\n",
    "    n_cols=3, \n",
    "    n_jobs=-1,\n",
    "    line_kw={'color': 'k'},\n",
    "    ax=ax\n",
    ") \n",
    "\n",
    "ax.set_title('Partial Dependence')\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Deviance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 4.293669881061453\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "\n",
    "rgr = GradientBoostingRegressor(n_estimators=250, learning_rate=0.02, loss='ls')\n",
    "rgr.fit(x_train, y_train)\n",
    "y_test_pred = rgr.predict(x_test)\n",
    "\n",
    "print(f'MSE: {mean_squared_error(y_test, y_test_pred)}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_deviance(estimator, x_test, y_test):\n",
    "\n",
    "    train_errors = estimator.train_score_\n",
    "    test_errors = [\n",
    "        estimator.loss_(y_test, y_pred_staged) # mean_squared_error(y_test, y_pred_staged)\n",
    "        for y_pred_staged in estimator.staged_predict(x_test)\n",
    "    ]\n",
    "\n",
    "    return pd.DataFrame(\n",
    "        {\n",
    "            'n_estimators': range(1, estimator.estimators_.shape[0]+1),\n",
    "            'train_error': train_errors,\n",
    "            'test_error': test_errors,\n",
    "        }\n",
    "    ).set_index('n_estimators')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:23: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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xSOPPJJpP4UKFSImJiZlOHknL6sCRPI0J598MgsXLkwzLvXN7FLnm1V7VnL6vtwU6jKU1xw7dozatWvz+uuvpxmXXEg477zzWL16NQsXLmTJkiUMGjSIRx99lPnz54d0GUN6McG750jNmjXTjD/llFNS/p/by0pMTAzFihXL0XtzU8QKCQcPHmT69Om88MILlC9fnnnz5kUqtIiIiIiI5AFFihQhKSkpy+mWLl3KeeedR/fu3VPafv7553CmRoMGDdi9ezeHDh1Kc1ZCTp111ll88cUXQW1Lly7FzDjrrLNyJUZBk3oZql+/Pm+++SalSpWiXLlyGb6vZMmSXHfddVx33XX07duX2rVrs3Tp0pQzE0IpNiU766yzKFasGFu2bKFFixbH9XkC+5w8eTLbt29POSvhjz/+YOPGjUHrQV4Rkac27Nixg7p169KnTx9+/PFHli1bxtdffx2J0CIiIiIikkdUq1aN1atXs3nzZrZv3x5087lAtWrV4vvvv2fu3Lls3ryZ8ePH88EHH4Q1t6ZNm9KsWTM6duzInDlz2LJlC6tWrWLChAlMmTIlR3327NmT1atXM2jQIH744QcWLFjAgAEDuPnmm6lSpUouf4KCIfUy1Lp1a6pVq0bbtm359NNP+emnn/j66695+umnmTNnDgDjxo1jxowZrFu3ji1btvD6668TExOTcjZBtWrV+OGHH1i3bh3bt28PejpIekqWLEmfPn145JFHePnll0lISGDdunXMnDmT4cOH5+hz3XzzzZQpU4Y77riDVatWsWrVKrp06UKlSpW48cYbc9RnOEWkkHDqqady7rnnBrU999xzkQgtIiIiIiJ5RPfu3Tn11FNp0qQJNWrUSLlzfmp33HEH7dq147777qNp06asXLmSgQMHhjU3M2P69Olcd911DB48mAsvvJC2bdvy8ccfU7169Rz1ee655zJ9+nS++OILmjRpwt13302LFi145plncjf5AiT1MrRq1Srmzp1LgwYNuO+++2jYsCEdO3Zk5cqVKcWaUqVK8cILL9CiRQsuvvhi5syZw9SpU1Pum9GxY0fOP/98WrZsSY0aNXjnnXeyzKN///6MGjWKKVOm0KRJE1q1asWLL76Yct+L7CpevDjvvfceRYsW5ZprruGaa66hRIkSzJw5M08+xcOcc2HpePfu3UEdf/LJJ7Rp0waAwoUL065dO5577jkKFYpILUMkz0hISMjyZj8iBZnWEZHMaR0p2AJPexYRycj69etZs2YNZcqU4fLLL89wuri4OMtwZCYido+Eyy+/nMaNG3PhhRdy9913c/rpp0cqtIiIiIiIiIjkkogVEsyMDz/8MOjxGCIiIiIiIpHQu3dvZsyYke64KlWqZHiZhRQ8M2bMoHfv3hmOX758eYG/x0VIhQQzKw1MAs4FHNAF2AC8BVQHtgBtnXM7s+jnOFIVERERERHJmcGDB9OjR490xxUuHLHjq3ICuOqqq2jYsGGG4ytVqhTBbPKmUNeYscBHzrmbzChbRngAACAASURBVKwIcBIwGPjEOTfGzAYCA4EBYcpTREREREQkx8qVK5fp4wFFkpUqVYpSpUpFO408Lcs7HZpZHNAUeAXAOXfEObcLuB5Ifg7KFOCGcCUpIiIiIiIiIqEJ10MVkoVyRsIZwJ/AZDOrB6wEegEVnHO/+dP8DlTIqIOEhIQMO9+xYwezZ8+mY8eOOqVICozM1gkR0ToikhWtIwVXkSJFOPXUU3XJsIhkyDnH/v372bFjB4mJiWn+ZuTGk39C2XMvDJwP9HDOrTCzsXiXMQQm6swsw5JHeon+8ssvPPfcc8THx3Pw4EHOO+88brnllmymL3Li0WO7RDKndUQkc1pHCrajR4/y559/Uq5cORUTRCQN5xybNm1i69atnHrqqZQtWzYsfzNCKSRsBbY651b4w+/gFRK2mVkl59xvZlYJ+CM7gZ999lleeeWVlOFnnnmGtm3bUqhQlldbiIiIiIgUSLGxsZQuXZrVq1dTtGhRFRPSkZiYqDOdpUByznHkyBE2b97M0aNHOXr0aNju9ZDlGuac+93MfjGz2s65DcAVwPf+qxMwxv93dnYC9+jRg8mTJ3Ps2DEANmzYwIcffsi1116b3c8gIiIiIlJgFClShNKlS/P5559TpEgRFRNS2bFjB6eeemq00xCJqqNHjxIXF0f9+vXD0n+opboewDT/iQ2bgDvwbtQ4w8y6Aj8BbbMTuHr16rRp04a3336b0047jR49enDZZZdlpwsRERERkQKpevXqFClShB9//JGjR49GO508JSkpiTJlykQ7DZGoMTNKlSpF/fr1w3Z2Tki9OudWAek9SPOK4wnet29fLrnkEtq1a0fRokWPpysRERERkQLltNNO47TTTot2GnmO7iMiEn5RvXjorLPO4qyzzopmCiIiIiIiIiKSDbqzoYiIiIiIiIiETIUEEREREREREQlZni0kHDlyJNopiIiIiIiIiEgqea6QsHLlStq1a0enTp2inYqIiIiIiIiIpBLVmy0G2rNnD126dGHBggUpbatXr6ZevXpRzEpEREREREREAuWZMxJKlSrFrl27gtqeeOKJKGUjIiIiIiIiIunJM4UEM2PAgAFBbX/++SeHDh2KUkYiIiIiIiIiklqeubQBoHnz5jRo0ICiRYsyYMAAmjVrhplFOy0RERERERER8eWpQoKZ8d577xEXF6cCgoiIiIiIiEgelKcKCQClS5eOdgoiIiIiIiIikoE8c48EEREREREREcn7VEgQERERERERkZCdEIWExMRE3njjDb799ttopyIiIiIiIiJSoOXpQsKxY8eYOXMmjRs35t577+Whhx6KdkoiIiIiIiIiBVqeLiR89dVXdO3alYSEBAAWLVrEkiVLopyViIiIiIiISMGVpwsJjRo1omnTpkFtjz/+eJSyEREREREREZE8XUgAGDJkCAAxMTF06NCB559/PsoZiYiIiIiIiBRchaOdQFYaNWrEww8/zNVXX03NmjWjnY6IiIiIiIhIgZbnCwkAPXv2jHYKIiIiIiIiIsIJcGmDiIiIiIiIiOQdKiSIiIiIiIiISMhO6ELCtm3b2LdvX7TTEBERERERESkwTshCwu7duxk5ciQNGjTgxRdfjHY6IiIiIiIiIgXGCVdIWL58OQ0aNODJJ5/kwIEDPPfcc/z111/RTktERERERESkQDjhCgl16tQJGt67dy+PP/54lLIRERERERERKVhOuEJCXFwcffr0SRmuUKEC9erVi2JGIiIiIiIiIgVH4WgnkBN33XUXb7zxBtdeey09e/akZMmS0U5JREREREREpEA4IQsJRYsWZcmSJcTExEQ7FREREREREZECJaRCgpltAfYCSUCic66hmZ0KvAVUB7YAbZ1zO8OTZloqIoiIiIiIiIhEXnbukXCZc66+c66hPzwQ+MQ5Vwv4xB8WERERERERkXzseG62eD0wxf//FOCG40/n+DnnSEpKinYaIiIiIiIiIvlSqIUEB3xsZivNrJvfVsE595v//9+BCrmeXTatWbOG1q1b88wzz0Q7FREREREREZF8yZxzWU9kdrpz7lczKw/MB3oA7zvn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SBCgSJEivPTSSxQtWjSlbdeuXfTs2TPslxqcfPLJbN++PWX48OHD3HfffbrEQURERERERAokC2WH2MzeAUYDpYB+QGdguX82AmZWBZjnnDs3+T27d+9O6TghISFXko2Pj2fcuHFBbYMGDeLGG2/Mlf4z8uGHHzJ8+HAAzjjjDEaPHk2NGjXCGlNEREREREQkt9WqVSvl/3FxcZaTPrIsJJjZtcDVzrl7zawZOSgk5JakpCSuvfZali1bltJWokQJPvvss7Du2Dvn+Pe//42Z8dRTT1GiRImwxZL8LyEhIWjlFZFgWkdEMqd1RCRzWkdEQpfTQkLhrCfhYuBfZnY1UAw4GRgLlDazws65RKAy8GtOEsiOmJgYxo8fz8UXX8z+/fsB2L9/Px07dmT+/Plh28E3M55//nliY2PD0r+IiIiIiIjIiSLLeyQ45wY55yo756oDtwCfOuduAxYCN/mTdQJmhy3LANWrV2fUqFFBbd9//z33339/WO9boCKCiIiIiIiISPae2pDaAKCPmW0EygCv5E5KWevUqRNt2rQJanv77bf1aEYRERERERGRMMtWIcE5t8g5d63//03OuYucczWdczc75w6HJ8W0zIyxY8dSp06doPYhQ4awfPnySKUBeJdW3HPPPUybNi2icUVERERERESi4XjOSIiqkiVLEh8fT6lSpVLaEhMT6dy5M9u2bYtIDuvWrePyyy9n+vTp9OvXj3Xr1kUkroiIiIiIiEi0nLCFBICaNWsyfvz4oLbff/+dzp07c/To0bDG3rdvH9dccw0bNmwA4ODBg9xxxx0pN4EUERERERERyY9O6EICwLXXXkufPn2C2pYtW8bw4cPDGrdkyZI89NBDQW3OOf7666+wxhURERERERGJphO+kADevRGaNWsW1Pbiiy/y7rvvhjVuhw4duOWWWwBo3749n376KdWqVQtrTBEREREREZFoyheFhJiYGCZNmkTlypWD2nv06BHW+xaYGU899RSTJ09m/PjxlChRImyxRERERERERPKCfFFIAChbtixTp06lSJEiKW379++nY8eO7N69O2xxS5QoQevWrcPWv4iIiIiIiEhekm8KCQDnn38+TzzxRFDbxo0bI3LzRREREREREZGCIF8VEgBuv/12OnToENS2cOFC+vbti3Muorns3r2b6dOnRzSmiIiIiIiISDjlu0KCmfHkk09y4YUXBrVPnTqVsWPHRiyP9evXc8UVV3DPPffw9ttvRyyuiIiIiIiISDjlu0ICQLFixXjjjTfSPEFhxIgRzJo1K+zxP/roI5o3b87GjRsB6N69O19//XXY44qIiIiIiIiEW74sJACUK1eOGTNmEBcXF9R+9913h32nvmzZshw5ciRl+PDhw7z44othjSkiIiIiIiISCfm2kABQu3Zt4uPjKVy4cErb4cOH6dChA7/99lvY4jZs2DDoMoqOHTvy0ksvhS2eiIiIiIiISKQUznqSE1vTpk0ZN24c9957b0rb77//zm233cbcuXMpXrx4WOK2b9+ejRs3Urp0abp3746ZhSWOiIiIiIiISCTl6zMSkt16663cf//9QW3ffPMNvXr1CuuTHB588EF69OihIoKIiIiIiIjkGwWikADeTn3Lli2D2mbMmMFzzz0XpYxERERERERETjwFppAQExPDxIkTOfPMM4Pahw8fzocffhjxfLZt28bKlSsjHldERERERETkeBSYQgJAXFwc06dPD3qSg3OOO++8k2+//TZieaxZs4YrrriCm266iU2bNkUsroiIiIiIiMjxKlCFBIAaNWrw2muvUajQ3x/9wIEDtGvXjp9++ins8T/88ENatWrF1q1b2blzJ+3atWPXrl1hjysiIiIiIiKSGwpcIQHgsssu48knnwxq++OPP7j55pvDvlO/du1a9u/fnzKckJDA5MmTwxpTREREREREJLcUyEICQJcuXdI8yeGHH37g1ltv5fDhw2GL269fP9q2bZsyfO+999KrV6+wxRMRERERERHJTQW2kAAwbNgw2rRpE9T2xRdfcOedd5KYmBiWmGbGuHHjaNy4MQ8//DCjRo0KusxCREREREREJC8r0HuwhQoV4oUXXqBx48ZB7R988AG9evXi2LFjYYlbrFgx3n//fXr27ImZhSWGiIiIiIiISDgU6EICeDv1b7zxRprHQk6bNo0hQ4bgnAtL3NjY2LD0KyIiIiIiIhJOBb6QAHDKKafw3nvvUaVKlaD28ePH8/jjj0c8n4SEBD7++OOIxxURERERERHJigoJvtNPP51Zs2ZRvnz5oPbRo0fz0ksvRSyPlStX0rJlSzp27MjSpUsjFldEREREREQkFCokBKhRowYzZ84kLi4uqH3gwIFMnz497PEXLFjAddddx44dOzh8+DDt27dn7dq1YY8rIiIiIiIiEioVElKpW7cuM2bM4KSTTgpq7969O3Pnzg1r7N9//50DBw6kDO/Zs4e33347rDFFREREREREskOFhHQ0atSI+Pj4oBsiJiUlcccdd7B48eKwxe3QoQPDhg1LGe7Xrx/Dhw8PWzwRERERERGR7Coc7QTyqiuuuIJJkyZxxx13pDwG8siRI9x66628++67NGrUKCxxe/fuzZ9//skZZ5xBt27dwhJDREREREREJKd0RkImrr/+esaOHRvUtn//ftq0acMXX3wRlphmxujRo1VEEBERERERkTwpy0KCmRUzsy/NbLWZrTWzh/z2M8xshZltNLO3zKxI+NONvI4dOzJy5Migtn379nHTTTexZMmSqOTknItKXBEREREREZFQzkg4DFzunKsH1Adamdk/gMeAZ5xzNYGdQNfwpRld3bt3Z8iQIUFtBw4coG3btixatCiiuXz99ddcddVV/PXXXxGNKyIiIiIiIgIhFBKcZ58/GOu/HHA58I7fPgW4ISwZ5hEPPPBAmhsfHjx4kFtuuYWPP/44IjmsWLGC1q1bs3z5cv71r3+xffv2iMQVERERERERSWahnCZvZjHASqAm8ALwBLDcPxsBM6sCzHPOnZv8nt27d6d0nJCQkMtpR098fDzjxo0LaouJieHhhx+mRYsWYYu7YcMGunXrFvR4yDPPPJNXXnmFYsWKhS2uiIiIiIiI5B+1atVK+X9cXJzlpI+QntrgnEsC6ptZaeA94KzsBAlM9ET38MMPU7FiRQYPHpzSlpSUxNChQylVqhS33357WOJWqVKFRo0asXDhwpS2G264gXPPPRezHH33EiUJCQn5ap0QyW1aR0Qyp3VEJHNaR0TCL1tPbXDO7QIWAo2B0maWXIioDPyay7nlWffeey9PPfVU0A68c46ePXvy/PPPhyVmsWLFmDZtGk2bNgVg8ODBDB48WEUEERERERERiahQntpQzj8TATMrDlwJrMMrKNzkT9YJmB2uJPOirl27MmHCBGJiYoLahw4dyogRIzh27FiuxzzppJOYPn06EydOpH///rnev4iIiIiIiEhWQjkjoRKw0My+A74C5jvn5gADgD5mthEoA7wSvjTzprZt2xIfH0/RokWD2p999ln+/e9/c+TIkVyPWaJECdq2bZvr/YqIiIiIiIiEIpSnNnznnGvgnDvPOXeuc+5hv32Tc+4i51xN59zNzrnD4U8377n66quZMWMGJUqUCGqfMWMGN910E7t3745oPsuWLePXXwvMVSYiIiIiIiISYdm6R4Kk79JLL2XOnDmUK1cuqP2zzz7j6quv5n//+19E8li2bBlt2rShZcuW/PDDDxGJKSIiIiIiIgWLCgm5pEGDBsyfP58aNWoEta9du5Yrr7ySdevWhTX+119/Tdu2bTlw4ABbt26lVatWrFy5MqwxRUREREREpOBRISEXVa9enY8//pgLL7wwqP3XX3+lZcuWLFmyJGyxX331Vfbu3ZsyvGPHjrAXL0RERERERKTgUSEhl5UpU4bZs2dzzTXXBLXv2bOHNm3aMHPmzLDEHTduHB07dkwZHjZsGB06dAhLLBERERERESm4Ckc7gfzopJNOYurUqQwYMIBJkyaltB85coSuXbuSkJBA//79KVQo9+o4hQsXZty4cVSoUIF9+/bRu3fvXOtbREREREREJJkKCWESExPDE088QeXKlRkxYkTQuDFjxvDNN98wceJESpcunWsxzYyhQ4finMPMcq1fERERERERkWS6tCGMzIz777+fCRMmEBsbGzTu448/plmzZqxZsyYscTPy1VdfkZiYmOsxRUREREREpGBQISEC2rVrx3vvvUfZsmWD2rds2UKLFi3Cdt+E1BYuXMjVV19N+/bt2bNnT0RiioiIiIiISP6iQkKENGnShMWLF9OwYcOg9oMHD9K1a1dGjhzJsWPHwhb/m2++oUOHDhw9epT58+fTqlUrfvnll7DFExERERERkfxJhYQIOv3005k7dy5dunRJM+7JJ5+kY8eO7Nu3L9fjOufo27cv+/fvT2lbv349GzZsyPVYIiIiIiIikr+pkBBhRYsW5emnn+b555+nSJEiQePmzp1LixYt2LRpU67GNDOmT59O/fr1U9pGjx5N8+bNczWOiIiIiIiI5H8qJERJhw4d+OCDDyhXrlxQ+/fff0/Tpk2ZMWNGrsarWLEic+fO5dprr+Wuu+7i7rvvztX+RUREREREpGBQISGKGjVqxKeffkrdunWD2vft20e3bt245557cvVShxIlSjB16lRGjx6da32KiIiIiIhIwaJCQpRVqVKFjz76iNatW6cZN336dJo1a8Z3332Xa/EKFSpE4cKFMxz/7rvvsnPnzlyLJyIiIiIiIvmLCgl5QIkSJXj11Vd5+umnKVq0aNC4jRs30rx5c1566SWcc2HN4/3336dLly5cdtllrFmzJqyxRERERERE5MSkQkIeYWZ06dKFTz/9lNq1aweNO3LkCAMHDqR9+/Zs3749LPG//fbblPsmbNmyhRYtWjB79uywxBIREREREZETlwoJecw555zDwoUL6dSpU5pxH330EZdccgkLFizI9bhjx47l4MGDKcNJSUlUqVIl1+OIiIiIiIjIiU2FhDzopJNOYuzYsUyePJmTTz45aNz//vc/brrpJrp165arZydMmDCBLl26pAw/+eSTnH/++bnWv4iIiIiIiOQPKiTkYa1bt+azzz6jYcOGacbNmDGDiy66iLfffjtX7p1QtGhRnn76aV544QXuuusubr/99uPuU0RERERERPIfFRLyuOrVqzNv3jz69OlDoULBX9f27du56667aNu2LT///HOuxLvtttt44oknMhyfmJgY9ps+ioiIiIiISN6lQsIJIDY2lmHDhvHJJ59wzjnnpBk/f/58GjduzEsvvURSUlJYcxk0aBCdO3dm165dYY0jIiIiIiIieZMKCSeQBg0asGjRIoYNG5bmMZH79+9n4MCBtGrVinXr1oUl/ltvvcXLL7/M7NmzadKkCcuWLQtLHBEREREREcm7VEg4wcTGxtKnTx+WLl3KP//5zzTjv/rqK5o2bcqjjz7K4cOHcy3umjVruP/++1OGt27dSv/+/Tl27FiuxRAREREREZG8T4WEE1TNmjWZM2cOzz77bJonOxw9epTHH3+cpk2bsmLFilyJd9JJJ1GrVq2U4WLFijFx4sQ0920QERERERGR/E17gSewQoUK0blzZ1asWME111yTZvyGDRto1aoV3bt3Z9u2bccVq0aNGsyfP5/u3bsDMGrUKOrUqXNcfYqIiIiIiMiJR4WEfKBSpUpMmzaNqVOnUqFChaBxzjlef/11GjZsyLhx447rcoeiRYsycuRIFi5cSJcuXY43bRERERERETkBqZCQj/zrX/9ixYoV3H777WnG7d27l2HDhtG4cWPmzZt3XI9wbNCgAWaW7rhdu3Zx1VVX8fnnn+e4fxEREREREcm7VEjIZ0qXLs24ceN4//33qV27dprxmzZton379rRp04b169fnevxBgwaxbNkyrr32WgYMGMCBAwdyPYaIiIiIiIhEjwoJ+VTTpk35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b98+SCmVz9u2bYuFCxfim2++wUMPPYTnnntOs64NGzZgy5YtbscTERERERFRwwhv3VyVlJTwro102Ww2fPnll/jggw+wceNGVFdX68Z36tQJDz/8MMaNG4cOHToYOkd1dTX69++P3Nxc9O3bF7/73e8wfPhwzQUcm0NWVhbS0tJa7PxErR37CJE+9hEifewjRMaFh4c36MaIIxKoxfj4+GDYsGFYsmQJjh8/joULF6J///6a8dnZ2XjppZeQnp6OESNG4L333tN96gMArFy5Erm5uQCAgwcPYuLEiSgqKmrS6yAiIiIiIrqZMJFArUJERAQmTZqE7du3Y8+ePZg+fTpiY2M14/fs2YOZM2eiS5cuGD9+PFavXo3y8nK3GJvNhtdff91t3+OPP47o6GivXAMREREREdHNgIkEanW6deuGl19+GceOHcOHH36I++67D76+vqqxVqsVW7duxZNPPom0tDRMnDgRmzZtgsVigY+PD5YvX47Ro0cDAHx9fTFt2jTN85aVlXnleoiIiIiIiG4kTCRQq2U2mzF8+HAsW7YMmZmZWLBgAQYMGKAZX1lZiXXr1uHhhx9G586d8fTTT6OkpARLly7FV199hddeew0JCQmqx+bk5KBLly6YPn06jh496q1LIiIiIiIiuu4xkUDXhejoaEyZMgXbtm3DwYMHMXfuXHTp0kUzvri4GMuWLcN9992HtLQ0LFq0CGFhYSguLlaNf/vtt1FRUYHly5fjxz/+MX77299661KIiIiIiIiua0wk0HUnJSUFs2bNwt69e7Fr1y7MmDFDc6QBABQVFWH16tWYOHEiUlNTMXbsWCxfvlxJKpSWluKDDz5wO6Zfv35evQYiIiIiIqLrFR//SDcEu92Offv2Yc2aNfj3v/99zac5ALVrJtx1113o378/li1bpjzdITY2FocPH4a/v79X2spHEhHpYx8h0sc+QqSPfYTIOD7+kW5qJpMJt9xyCxYuXIjMzEx89NFHGD9+PCIiIjSPqampwZYtWzB//nwUFBTgRz/6ETp37oxHHnlEM4mwefNmTJgwAZ999hmsVqu3LoeIiIiIiKjV4ogEuqFZrVZ888032LJlCzZv3ozjx49f8xhfX1/ceuutuPvuu/GTn/wEnTt3hhC1iboxY8Zg165dAIB27drhb3/7G4YNG1avNjFLTqSPfYRIH/sIkT72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dXU1qqurNdeT6NatG1544QVYLBZYLBa337p76tevH0wmEywWC2pqalR/cw7UPuozPDwcNTU1sFgsujfdnokMvaSD5022Vr2ejxrVS04YrdNoHFB3GolerGdbtZIennHeqFMv4eKN2MrKSrdHzxYXF2vWeerUKRw6dEgpayVnKisr3RZATUhI0Kzz8OHDbonBxMREzUTCO++8g8uXLyvlp556SjWRcOzYMbd1TEaNGqWZSFi8eLFbW9esWaN603/58mW3RV4TEhJw5MgR1TqXLVuGhQsXKuW5c+di1qxZqrEjRoxwu6bs7GzVf7O2bt2Kxx57zO2aPvjgA9U6J0yY4HZNH330Ee655546cZcuXcKQIUPcEh67d+9WrXPRokV45513IISAyWTC9OnTMXnyZNXYkSNHoqSkRElgfPrpp6oJ16+//hp/+tOflLhbb70Vzz77rGqd8+fPx6FDh5TEyO9+9zv07t27TlxRURFmz56t1BkdHa25hs2mTZuwY8cOJckyfPhwDBs2TDX2lVdeQWVlpVLvrFmzVNfxOXHiBP79738rP6dOnTqpTj0DgE8++QS5ublKnSNHjlR9lHRZWRnWrVuntDM0NFRzYebDhw/jxIkTSp3du3fXTKB//vnnsFgsSuzQoUNVk935+fk4evSoEhcTE4MePXqo1nns2DG3P/suXbqo/tlXV1crCVMhBPz9/dG1a1fVOgsKClBUVKRcf0xMjObjsc+dOwe73a6cv127dqr/9lVVVaG0tFSJ00vMNRYTCURERFRveo8GddW5c2fd5IGruXPnGopLTk7GmTNnlLLrkzY8TZ06FePGjYPVaoXFYkH79u01Y1999VVUVVXBarXCarVqThdJTk7GU089BZvNhpqaGvTq1Uuzzu7du6O6uho2mw1Wq1VzLQ0pJSIjI5U6AwMDNeusz013Q5Mj3qjTZDJp1umNREZ9Ei6esVpt9Ty33m/DjdZZn9jmqLM+19QUsZ79V++ajMba7Xa36V9ai9ECtQmm3NxcpVxSUqIZm5GR4faoY8+/D06FhYXYs2ePUtZbQ2f//v344osvlLLWlLny8nKsXr1aKSckJGgmEr799lu8++67SjkuLk4zkfD222+7XdO0adNUEwkZGRmYP3++Uh49erRmIuGf//yn2zWlpaWpJhKKiorwzDPPuF2TViJh/fr1eP3115Xy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t5NSZgOYAeAFAPlCiA+FEO3q0Y5LLu8rAUBK6bkvBACEEIOEEF8IIQqEECWoHTEQo1N3OwBnXMpnAJgBuE5XOOfyfjmALQA+FEJcEEK8KoTwrce1EBERURNgIoGIiOj6dw7APCllhMsWJKVcCQBSyhVSyttQm3CQABY4jmvqRzetAPAJgA5SynAAbwEQOue64GiTUyIAK9yTF8pxUsoaKeWLUsruAG4FMBq1UymIiIioGTGRQEREdP37PwBPOUYECCFEsGPhw1AhRBchxF1CCH8AVagdQWB3HHcJQLIQoqn+PxAKoEhKWSWEGAjgYZfPChzn7eiybyWA3wghUhzrLDjXbFB9PKQQYqgQIl0I4QOgFLVTHexqsUREROQ9TCQQERFd56SU3wJ4ArULFV4BkI3/Ls7oD+AVAIWonS4Ri9q1CADgI8frZSHEd03QlF8DeEkIUQbgjwBWu7SxAsA8AF87pl8MRu0CkctR+0SHHNQmOqbr1N8WwBrUJhEyAPzHcTwRERE1IyFlU49qJCIiIiIiIqIbFUckEBEREREREZFhTCQQERFdB4QQc4QQ5SrbZy3dNiIiIrq5cGoDERERERERERnGEQlEREREREREZBgTCURERERERERkGBMJRERERERERGQYEwlEREREREREZBgTCURERERERERk2P8Hmn9177qCOe8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1152x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 1, figsize=(16, 5), sharey=False)\n",
    "\n",
    "df_deviance = calculate_deviance(rgr, x_test, y_test)\n",
    "\n",
    "df_deviance['train_error'].plot(\n",
    "    kind='line',\n",
    "    color='k',\n",
    "    linestyle=':',\n",
    "    ax=ax\n",
    ")\n",
    "\n",
    "df_deviance['test_error'].plot(\n",
    "    kind='line',\n",
    "    color='k',\n",
    "    linestyle='-',\n",
    "    ax=ax\n",
    ")\n",
    "\n",
    "ax.set_title('Gradient Boosting - Deviance; comparing train and test errors vs n_estimators')\n",
    "\n",
    "ax.legend(ncol=2, fontsize='x-large', shadow=True)\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:35: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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c+fOtG3bllNPPZX58+eXvC4/P5/bb7+dnj170qJFC3JycrjssssAmDBhAs8++yzz588Puy6jMWnSJI455hhatmxJ//79uf/++ykoKChZ36tXL+655x5uuukmOnXqxOmnn15ynh999FGuuOIK2rdvz1VXXQVAbm4uY8aM4YgjjuCII47g3HPPZe3atSXbK77G33//fU444QRatGjB3LlzYz6PUj2Uh5WHKyvROVh5WHk40bp27Vqt21ceVh6uLOVh5eFY1AxkrxKXiRMnkpeXR6tWrZg4cSIAu3fvBmD8+PGMHz+eP//5z4BX4WrevMJuezIAACAASURBVDmPP/44zZs3Z9myZdxwww3UrFmT22+/vcx9FBUVcddddzFx4kSaNWvG7bffziWXXMJnn31GzZrlXy7OOc477zycczz55JO0bt2auXPncvnll/PSSy8xdOjQkraR8W7YsAGAO+64gz/+8Y/06NGD7OxsvvzyS84//3yuvPJKHnvsMdavX88NN9zA7t27+b//+7+S7X322WfUr1+f559/nqysLGrVqhXHGU5/pV1DderUYcSIEXTr1o2XXnqJRo0a8corr3DWWWcxb948cnJymDRpEq+99hqTJk2iY8eObN26lY8++gjwbklbu3Yt69ev59lnnwWgYcOGFcYyYcIEpkyZwoQJE+jVqxerV6/mxhtvZP/+/dxxxx0l7SZNmsRvfvMbZsyYEZaY77vvPm677TbGjRtHUVER+/bt46yzzuLII49k2rRpgHc9jR49mo8//rjkmigqKmL8+PHce++9tG/fnvr161fNyZWMoDysPFxZysPKw1I5ysPKw5WlPJw8eVjFiBTSqFEjatWqRZ06dWjZsiXw40BGl1xyCWPGjAlr/9///d8l33fo0IF169bxxBNPlJt8nXNMmDCBvn37AnDrrbcyfPhw1q1bV2E1/oMPPmDhwoWsXr2aRo0alcS1cOFCJk2aFJZ8I+MtTr433XRTSbUP4K677qJPnz5MmDABgG7dunHfffdx4YUXcscdd9C+fXvAu21x0qRJ+kBTgdKuoSlTprB7926eeuqpkjfYm2++mffee4+nnnqKiRMnsmHDBjp37szgwYMxM9q1a0f//v0BqF+/PnXq1CE7O7tkmxXZu3cvf/vb33j22WcZPnw4AB07dmTcuHHccsstYcm3X79+3HbbbYds44wzzuDKK68smX/mmWfYvn077733Xsl/OJ588kl69+7Nyy+/zPnnnw941/g999zD8ccfH+vpE1EeRnm4spSHlYelcpSHlYcrS3k4efKwihFpYsCAAYcsmzx5Ms888wxff/01e/fupaCgoMJHFJoZvXr1Kplv1aoVAFu2bKkw+S5evJiDBw/Ss2fPsOUHDx6kc+fOFcZb2vKVK1cyZMiQsGWDBg3COceqVatKkm9OTo4Sb5wWL17M5s2b6dChQ9jyAwcOULduXQAuuOACzjrrLPr168eJJ57IsGHDOP300+OuuK9cuZJ9+/Zx0UUXhfV/LSwsZP/+/Wzbto1mzZoBsV0rOTk5YbdaFt/KuHLlyrC2xW8cIlVJeVh5OF7KwyJVQ3lYeTheysPBUDHC991330XV7pJLLuGSSy6Jqu17771XiYhiU69evbD51157jZtvvpk777yTwYMH06BBA1577TXuvvvucreTlZVFjRo1SuaLfzEqStrFbRo2bMicOXMOWZednV1uvBUtr0i8r6tq0V5HyaSoqIicnByee+65Q9YVJ9/evXuzdOlS5syZw7x587jtttv405/+xIwZM6K6Ba20fYLX57RLly6HrD/88MNLvq/qa6VGjRrUqVMnrtdK9VIe9igPxy8VczAoD0vyUB72KA/HT3k4tn1CZudhFSNSTK1atSgsLKyw3fz58+nduzfXXnttybLqfhxUv3792LVrF/v37z+kGhyv7t27s2DBgrBl8+fPx8zo3r17lewj00ReQ3379uXFF1+kQYMGNG/evMzX1a9fn5EjRzJy5EhuuukmcnJymD9/fklFOJo36GLdu3enTp065OXlMWLEiEodT+g2n3rqKbZv315SDd6yZQtr1qwJ+z0QqSzlYeXhylIeFqkc5WHl4cpSHk4OeppGiunQoQNLly5l3bp1bN++PWwAk1Bdu3Zl+fLlTJs2jXXr1vGPf/yDN998s1pjGzJkCMOGDWPs2LG89dZb5OXlsWTJEiZNmsTkyZPj2uZvf/tbli5dym233cbq1auZOXMmt9xyC+eccw7t2rWr4iPIDJHX0FlnnUWHDh0YM2YMs2fPZv369Xz66ac88MADvPXWWwD87W9/Y+rUqaxYsYK8vDyee+45atSoUVLF7dChA6tXr2bFihVs3749bJTq0tSvX58bb7yRu+++m8cee4zc3FxW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Y/r06SXzRx55JG3btk1kWCIicUnInRHOubXOuT7+9BPn3L3+8u3OuZOdc12dc8OdczsSEY+IiMSuVq1aQYcgIpLRSitGRN4S/uWXXyYqHBGRSgn60Z4iIpIirrzyyoobiYhItVm+fDmRg88fddRRYfMqRohIqkjYAJYiIiIiIhK/HTt2sHnzZlq1alWy7KijjqJhw4b85Cc/4aijjuL4448PMEIRkeipGCEiIiIikiKWL19+SDFi/fr1+GOziYikDHXTEBERERFJEZHjRpiZChEikpJUjBARERERSRGlPd5TRCQVqRghIiIiIpIiVIwQkXShYoSIiERlxowZQYcgIpLxVq5cSUFBQdBhiIhUmooRIiISlbfffjvoEEREMt6BAwf46quvym2zbds2CgsLExSRiEh8VIwQEZGo6D9xIiLJ4fPPPz9k2V//+ldGjx5NTk4OXbp0YfXq1QFEJiISPRUjREQkKipGiIgkh9KKEfPmzWPWrFls3rwZgC+//DLRYYmIxETFCBERicqpp54adAgiIkLpxYijjjoqbF7FCBFJdipGiIhIVEaNGhV0CCIigleMcM6FLevVq1fJ93Xr1mX//v2JDktEJCY1gw5ARERERESit3PnTjZu3Ei7du1Klg0aNIiHH36Yfv360a1bN2rW1Md8EUluylIiIiIiIinm888/DytGtG7dmgsuuCDAiEREYqNuGiIiIiIiKWbp0qVBhyAiUikqRoiIiIiIpJjSBrEUEUklKkaIiIiIiKSYL774IugQREQqRcUIERGJyujRo4MOQUQko2VnZ5d8/80337B9+/YAoxERqRwVI0REJCrffvtt0CGIiGS07t27h82X1lVj8+bNvPPOO0ycOJFzzz2X9evXJyo8EZGY6GkaIiISlYKCgqBDEBHJaL179w7rnrF06VJOPPHEsDaXXXYZ8+fPL5k///zz6dChQ8JiFBGJlu6MEBGRqBw8eDDoEEREMlqfPn3C5pcsWXJIm759+1bYRkQkGagYISIiUZk+fXrQIYiIZLR+/fqFzasYISKpTN00REQkKs2bNw86BBGRjHbUUUdRo0YNCgsLAcjLy2Pnzp0cfvjhJW369+/PgAED6Nu3L3379uXoo48OKlwRkXKpGCEiIiIikgLq1q1Ljx49+PLLL0uWLVmyJGzciM6dOzNr1qwgwhMRiYm6aYiISFT27NkTdAgiIhkvsqvG4sWLA4pERKRyVIwQEZGoHDhwIOgQREQynooRIpIuVIwQEZGo6GkaIiLBUzFCRNKFihEiIhKV6dOnU1RUFHQYIiIZrWfPnmRnZ5fMb9y4kW3btgUYkYhIfBJajDCzGma22Mze8uc7mdnHZrbGzP5pZrUSGY+IiETv+uuvV1cNEZGA1a5dm549e4Yt++yzz8psv3nzZt566y2++eab6g5NRCQmib4z4npgRcj8fcCDzrkuwE7g8gTHIyIiMVBXDRGR4A0YMCBs/tNPPz2kzd///nd69epFTk4OF154IdOnT09UeCIiUUlYMcLM2gJnAI/78wacBLzkN5kMnJmoeEREJHYFBQVBhyAikvGOPvrosPnSihH5+fls2LChZH7hwoXVHpeISCwSeWfEX4E/AMUdjpsC3znnij/ZbgSOSGA8IiISg+OOO46sLA01JCIStMhixKJFiw4Z0yeagoWISJBqJmInZvZzYItzbpGZDYtnG7m5uVUbVJLKlOMEHWu6yoRj7dq1a9AhBOKKK65g27ZtaT9QWiZcw8V0rOkpE441U/Nw8c/WOUeDBg3YvXs3ALt27WLWrFl07NixpG3Dhg3JysoiKyuLnJwcevXqxapVq5K+qJwJ128xHWt6ypRjrYo8nJBiBDAI+IWZ/QyoAzQEHgIam1lN/+6ItkCZI+tkwptObm5uRhwn6FjTVSYdayZq2bJl2v98M+ka1rGmp0w61kwU+rM99thjmTVrVsn81q1bOeWUU8Laz5kzh5ycHOrUqZOwGCsjk65fHWt6yqRjrQoJKY06525zzrV1znUEzgNmO+cuAOYAv/SbXQy8noh4REQkdhovQkQkeUTTDaNPnz4pU4gQkcwT9H1atwA3mtkavDEkngg4HhERKYOepCEikjwiixEaoFJEUk2iummUcM7NBeb6368Fjk10DCIiErv8/PygQxAREV/k4z2XL1/Onj17qF+/fkARiYjEJug7I0REJEWoGCEikjyaNGkS1je9sLCQRYsWBRiRiEhsVIwQEZGoPPDAA3z++edBhyEiIr7jjjsubP7DDz8st71zjj179lRnSCIiUVMxQkREovLFF1+wZcuWoMMQERFfZDHio48+OqTNf/7zHx5++GEuvPBCunbtyo033pio8EREypXwMSNERCR1qauGiEjyGDhwYNj8woULKSgo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\n",
      "text/plain": [
       "<Figure size 1152x360 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "learning_rates = [1, 0.1, 0.01]\n",
    "\n",
    "fig, axs = plt.subplots(1, len(learning_rates), figsize=(16, 5), sharey=True)\n",
    "\n",
    "for i, learning_rate in enumerate(learning_rates):\n",
    "    \n",
    "    rgr = GradientBoostingRegressor(n_estimators=500, learning_rate=learning_rate, loss='ls')\n",
    "    rgr.fit(x_train, y_train)\n",
    "    y_test_pred = rgr.predict(x_test)\n",
    "\n",
    "    final_test_error = mean_squared_error(y_test, y_test_pred)\n",
    "\n",
    "    df_deviance = calculate_deviance(rgr, x_test, y_test)\n",
    "\n",
    "    df_deviance['train_error'].plot(\n",
    "        title='Gradient Boosting - Deviance',\n",
    "        kind='line',\n",
    "        color='k',\n",
    "        linestyle=':',\n",
    "        ax=axs[i]\n",
    "    )\n",
    "\n",
    "    df_deviance['test_error'].plot(\n",
    "        title=f'Gradient Boosting - Deviance\\nlearning_rate={learning_rate}\\nfinal_test_error={final_test_error:.2f}',\n",
    "        kind='line',\n",
    "        color='k',\n",
    "        linestyle='-',\n",
    "        ax=axs[i]\n",
    "    )\n",
    "\n",
    "    axs[i].set_ylabel('Loss')\n",
    "\n",
    "    axs[i].legend(ncol=2, fontsize='x-large', shadow=True)\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:38: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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FSWRcl8ixSJSVuo8EBEREREREZFilftVjTt27FDvg4gktAYNGljJtSov5WERSXTKwyIi8ROtHKw5D0RERERERESkWOo8EBEREREREZFiqfOglJYtWxbvECqMzjU5pdK5SnJKpXtY55qcUulcJfmk0v2rc01OqXSu0abOAxEREREREREpljoPRERERERERKRY6jwQERERERERkWKp80BEREREREREimXOle+1tLF6r21mZiY7d+6MRdPlsnfvXmrVqhXvMCqEzjU5JdO51q9fn7S0tBLr6f3iZaM8HH861+SULOealpZG/fr1I6qrPFw2iZiHk+X+jYTONTkl07lW9N/C1aLRSLRlZmby008/0aRJE8yS+neNiJSRc441a9aQnp4e8R+vEjnlYREpyZYtW1i8eDGHHHIIVatWjXc4SUd5WESK45xj9erVZGVl0aFDhwo5ZkI+trBz504lShEplpnRunVrVqxYwa5du+IdTtJRHhaRkjRu3JjMzEymTZtGdnZ2vMNJOsrDIlIcM6NNmzbs3LmTuXPnVsgxE7LzAFCiFJESmRnVq1dn5syZ8Q4lKSkPi0hxcnPw9u3bmT9/frzDSUrKwyJSHDOjZs2afPPNN2zfvj3mx0vYzgMRkUiYGfv27Yt3GCIiKatatWrs2LEj3mGIiKQkM6Nq1aps3bo15sdS54GIVHo5OTnxDkFEJKWVdwJuEREpOzMjKysr5sdR50GCmzhxIo0bN453GCIiKUt5WEQkfpSDRRKHOg9i4PTTT+fKK6+MSluDBw9m8eLFUWlLKo9o3kO5rr32WgYNGhTVNkUSlfKwlJfysEjZKQdLeSkHJyZ1HsTJgQMHIqpXq1YtmjVrFuNoSlZUvJmZmWVqr6z7SeIr6l6J9J4P55zT/SIxoTysn6tkpTwslYFysH6mklUy5+BK1XmQnp6erxTl2WefzVfvuuuuK7Junz598tUt72zBV155JTNmzOCll17Ka3PixImkp6czadIkzjrrLH71q19xzz334JzjL3/5C926daNFixZ07dqVu+66i/379+e1Fz5UK3f5888/p3fv3rRs2ZI+ffqU6vUcu3fv5pZbbuGwww6jZcuWnHjiibz11lt521etWlVovB9//DHp6em89957DBgwgObNmzNhwgQA3n//ffr06UOzZs3o2LEjw4YN4+eff853XU4//XTG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k5aWFqtwRESiJqqPLQCFTsy1evVqunXrlrdcvXp19uzZQ+3ataN9eBERCXHyySdz9dVX89JLLxVZZ8SIERUYkYhIclu3bl3EnbKPP/44p556Ko0aNYpxVCIi5Rf1kQdz584t8MlXmzZtaNu2bd7ygQMHipz9W0REyqdr167Url2b9u3bM3LkyBIn4qpTp04FRSYikhrmz59fYp2MjAzOO+88dRyISKUR9c6DAwcOFJow+/Tpk2/5k08+ifahRUQE2L59O+vXr2fu3LkcddRRPPHEE0XWrVGjBvfddx/XXnstO3bsqMAoRUSS15IlS1i9ejVr165l3bp13Hzzzfm216xZkzFjxsQpOhGRsol65wEU/uhCv379OPHEE7ntttt4//33ufXWW2NxaBGRlLd69Wo2bNhQbJ1jjjkGgP379/Puu+/y/PPPk5WVVRHhiYgkva+++or6tLCg8gAAIABJREFU9etTt25d6tSpw0knncQpp5ySt33fvn08/vjjvPbaawA89thjHHrooXTp0oUjjjiCf/3rX/EKXUSkSDHpPChsdtnTTz+dKVOmcNNNN3HMMcdoYhgRkRiaPXt23tc9e/YssL19+/YF1qnzQEQkOhYsWMBzzz1H8+bNSU9PZ+DAgezdu5ezzjorr87rr7/Ot99+C8CPP/7Ihg0bWL9+PWvXrtXby0QkIcWk82D27Nk452LRtIiIRCC086Bfv34MHjw43/aXX365wD7Lly+PeVwiIqlg//79jB07lv379+etmzVrFq+88kq+em+//TY///wz06dPz7d+6tSpFRGmiEipxKTzYNu2bSxbtiwWTYuISARyXxUGcNFFF/H000/TtWvXYvepWrVqrMMSEUkZkbyqcenSpRx00EF88803ZTrGvHnzmDJlSqGv6RURibaYdB4AGm4lIhJH8+bNK/DHZOgnYIXRiDERkejZs2dPmfft0qVLiXVeeeUVTj75ZC688EJ++9vfKoeLSMyp80BEJAkV9krcBx54oMj6hx12GDVr1ox1WCIiKaM8owF+/etfl1jn8ssvz+swmDt3boFHH0REoi1mnQeFvXEhV05ODrNnz+bOO+/kvffei1UIIiIpbebMmXlf33zzzdx+++2F1mvevDkvvPAChx9+ODk5ORUVnohIUivrSIBRo0YxePBgvv7661Ltt3Tp0jIdT0QkUlHtPAh9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KsrmH89Nmzbl8ePHPHr0iPj4eEqXLm2xnKZpVKhQwWSWY2vXTf/Hu62uwOkDWGaTB7balNnkga3lQ4XIi9KvmX316lUGDBiAv78/Dg4OJCUlWUwWFi1a1OZqDT4+PqxcudLmvQ2ftr366qu88MILJsdef/11SpcubbU3UHply5bl9OnTJj+bo0aNYsmSJZk632DJkiUZnlO0aFGbQ7eyIjAwkBEjRhg/6bLl5MmTfP755wwaNIi1a9caEwdgOh537969+Pr6UqlSJVasWEHdunWJi4vjzp07xp4mhw8fZvXq1fj5+TFkyBAcHBwIDg42zh1x79491qxZw6effsrDhw/59ttvuXnzJoMHD6Z69eombygfPXpEQkICFy5coFatWmYTD2/YsIHt27fTqlUrBg0aJDFSFBrp32csXbqUV155JdPnv/7662zdupW9e/fSokULVq5cyYoVK4y9JgMCAizOP7N9+3YGDBjAd999Z/IJ98yZM42Tw6avW2aMHz+eGzduZBjbs0uDBg24desW3bt3p0qVKgwbNoymTZvi4+NDQEAA9vb2Jonu/K5Xr15mS21OmjSJF154gUWLFvHxxx+blP/kk0+Mww8smTVrFjVr1rTaA9egVKlSxuS1QWBgIO3bt7c4B5KlDzGTkpJISUnhxx9/xNnZmY4dO9q855NQtrodZ0ZcXNzTXSCfKUzrgkpbC6anbauhp0JSUhJKKatzPvz+++/ExMSQnJxMcnIyL7/8ssVxcH///TfLly83lvPx8THp4pXWqlWr+O2334xJjsDAQAICAszKpU+AeHh4FOh3yRKH87958+aZvCF54403WLx48TNv65o1a1i3bh3169dnwoQJuLq6kpqayrRp09i5cycNGzZk//79xmUY0wsODjZbznH9+vW89957z6L6+UZAQACLFi3C39/fOOfN5MmT6datm8VJgKtWrUpSUpLFeSI6dOhAeHi4ydJx7u7u/Pnnn6xatYqNGzeiaZrJxJSrVq0y6aKtaRqzZ8/m559/pnXr1rz33nt4enqSmJjI3LlzCQkJoUePHsYl0TRNY9++faSmpho/oTt16hSLFy+mUqVKBAUFmSWXJQ4XHPktBt+5c4f4+HiSk5NJSUnB19c300vHGtpqeO9jb29vMfH2119/8eKLL5rsM3RZ79evn8lqW8uWLTNOvLho0SL++c9/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\n",
      "text/plain": [
       "<Figure size 1152x360 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "subsamples = [1.0, 0.8, 0.6]\n",
    "\n",
    "fig, axs = plt.subplots(1, len(subsamples), figsize=(16, 5), sharey=True)\n",
    "\n",
    "for i, subsample in enumerate(subsamples):\n",
    "    \n",
    "    loss = 'lad'\n",
    "    learning_rate = 0.01\n",
    "    \n",
    "    rgr = GradientBoostingRegressor(\n",
    "        n_estimators=1000, subsample=subsample, learning_rate=learning_rate, loss=loss\n",
    "    )\n",
    "    rgr.fit(x_train, y_train)\n",
    "    y_test_pred = rgr.predict(x_test)\n",
    "\n",
    "    final_test_error = mean_squared_error(y_test, y_test_pred)\n",
    "\n",
    "    df_deviance = calculate_deviance(rgr, x_test, y_test)\n",
    "\n",
    "    df_deviance['train_error'].plot(\n",
    "        title='Gradient Boosting - Deviance',\n",
    "        kind='line',\n",
    "        color='k',\n",
    "        linestyle=':',\n",
    "        ax=axs[i]\n",
    "    )\n",
    "\n",
    "    df_deviance['test_error'].plot(\n",
    "        title=f'Gradient Boosting Deviance\\n(Loss={loss.upper()} & LR={learning_rate})\\nsubsample={subsample}\\nfinal_test_error={final_test_error:.2f}',\n",
    "        kind='line',\n",
    "        color='k',\n",
    "        linestyle='-',\n",
    "        ax=axs[i]\n",
    "    )\n",
    "\n",
    "    axs[i].legend(ncol=2, fontsize='x-large', shadow=True)\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Early Stopping\n",
    "n_iter_no_change, tol"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dynamic Learning Rate"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "def lr_changer(n, estimator, params):\n",
    "    if n % 10:\n",
    "        estimator.learning_rate = 0.01\n",
    "    else:\n",
    "        estimator.learning_rate = 0.1\n",
    "    return False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 27.05501619731945\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "\n",
    "rgr = GradientBoostingRegressor(n_estimators=50, learning_rate=0.01, loss='ls')\n",
    "rgr.fit(x_train, y_train, monitor=lr_changer)\n",
    "y_test_pred = rgr.predict(x_test)\n",
    "\n",
    "print(f'MSE: {mean_squared_error(y_test, y_test_pred)}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:23: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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IiItUvBARERERERERFqk4IGIiIiIiIiItEjBAxERERERERFpUa/uroCIiIiIiISvvr6e2tra7q5GjxIbG0tNTU13V0OkR4iLiyMmJibi5Sp4ICIiIiJyjKivr2fv3r0MGjQIY0x3V0dEehhrLZWVlezfv5/c3Fyio6MjVrZuWxAREREROUbU1tYqcCAiIRljGDFiBA0NDSxcuJDGxsaIla3ggYiIiIjIMUSBAxFpiTGGPn36UFNTQ2FhYcTK7ZLgwb///e+umI2IiIiIiIjICc8YQ0xMDPv27YtYmV0SPPjrX//aFbMREREREREREZe1NmJldUnw4N1332Xbtm1dMSsRERERETkBzJ8/n6SkpO6uhsgJo0uCB01NTbz88stdMSsREREREemhZs2axY033hiRsi677DLWr18fkbLk2BHJbcjj5ptv5sILL4xomcejLnlU4/z58znvvPO6YlYiIiIiInIMO3r0KL179241X2xsLLGxsV1Qo5aFqm99fT0xMTFtLq+9n5OeL9S2Eu42H8haS0NDQ5dtL13S8uDCCy/UDiAiIiIi0kkSEhL8hlCefPJJv3y33HJLyLwzZszwy1tQUNChOt54440sWbKE5557zlvm/PnzSUhI4MUXX2T27NmkpqbywAMPYK3l+9//Pnl5eQwdOpSJEydy//33U1dX5y0v8LYFz/hHH33E9OnTSUlJYcaMGXzyySdh1/HAgQPceeed5ObmkpKSwrRp03jttde80ysqKoLW9/333ychIYG3336bL3zhCyQnJ/P0008D8M477zBjxgyGDBlCZmYmt99+OwcPHvRbL7NmzWLevHmMHz+eIUOGcPjw4Y6s6nYJ3Ia6YmirYNvQ+++/z86dO7nxxhsZPXo0aWlpnH/++SxdutT7ufr6eu6++27Gjh3LkCFDyM7O5tprrwVg7ty5PPPMMyxdutRvuwzHvHnzmDp1KsnJyeTn5/PrX/+ahoYG7/Tx48fzi1/8gttvv52MjAwuuOAC77r+05/+xPXXX8+IESP49re/DUBpaSlz5sxh2LBhDBs2jMsvv5xNmzZ5y/Ns4//5z3+YNm0aQ4YMYfHixW1ej+3VJS0PRERERETkxPbggw+yefNmhg4dyoMPPgjA/v37Abj33nu59957+d///V/AuaI6ePBgHnvsMQYPHsy6deu49dZb6dWrF3fffXfIeTQ1NXHffffx4IMPMmjQIO6++26uueYaPvnkE3r1avnUx1rLV7/6Vay1/PWvfyUlJYXFixdz3XXX8dJLLzFjxgxv3sD6btmyBYB77rmH+++/n9zcXGJiYli7di1f+9rXuOGGG/jLX/5CRUUFt956K/v37+fPf/6zt7xPPvmE/v3787e//Y2oqKh2XYU+EQTbhvr27ct5551HVlYWL730EvHx8bzyyitceumlvP/++2RnZzNv3jz+8Y9/MG/ePNLT06muruajjz4CnFsWNm3aREVFBc888wwAcXFxrdZl7ty5zJ8/n7lz5zJ+/HhKSkq47bbbOHLkCPfcc48337x58/jud7/LggUL/AILDz30EHfddRc/+clPaGpq4vDhw1x66aWMGjWKN998E3C2py9/+cv897//9W4TTU1N3HvvvTzwwAOMGDGC/v37R2blhkHBAxERERER6XTx8fH07t2bvn37kpycDMCRI0cAuOaaa5gzZ45f/p/+9Kfe9yNHjqS8vJzHH3+8xeCBtZa5c+eSl5cHwI9//GPOOeccysvLGTNmTIv1++CDD1i+fDklJSXEx8d767V8+XLmzZvnFzwIrK8neHD77bd7ry4D3HfffUycOJG5c+cCkJWVxUMPPcSVV17JPffcw4gRIwDnsXrz5s3r0hPBY1GwbWj+/Pns37+fJ554whsguuOOO1iyZAlPPPEEDz74IFu2bGH06NGcccYZGGMYPnw4+fn5APTv35++ffsSExPjLbM1hw4d4pFHHuGZZ57hnHPOASA9PZ2f/OQn3HnnnX7Bg0mTJnHXXXc1K+PCCy/khhtu8I4//fTT1NTUsGTJEm+Lmr/+9a9MmDCBl19+ma997WuAs43/4he/4POf/3xbV1+HKXggIiIiIiLdavLkyc3SnnrqKZ5++mkqKys5dOgQDQ0NNDU1tViOMYbx48d7x4cOHQrAzp07Ww0erFq1iqNHjzJ27Fi/9KNHjzJ69OhW6xssfcOGDUyfPt0v7fTTT8daS3FxsTd4kJ2drcBBO61atYpPP/2UkSNH+qXX1dV5+8S44ooruPTSS5k0aRJnnnkmM2fO5IILLmh3C48NGzZw+PBhrr76aowx3vTGxkaOHDnCrl27GDRoENC2bSU7O9vvVhzPrS4bNmzwy+sJfHQ1BQ9ERERERI5xe/fuDSvfNddcwzXXXBNW3iVLlnSgRm1z0kkn+Y3/4x//4I477uBnP/sZZ5xxBgMGDOAf//gHP//5z1ssJyoqiujoaO+458SutaCDJ09cXByLFi1qNi2w/7bA+raW3pr2fi6Swt2Gepqmpiays7N59tlnm03zBA8mTJhAYWEhixYt4v333+euu+7il7/8JQsWLAjrFoVg8wSnD5HMzMxm0wcOHOh9H+ltJTo6mr59+7brsx3VZcGD2tpaXn31VebPn8+f/vQnRo0a1VWzFhERERGRHqB37940Nja2mm/p0qVMmDCB733ve960ysrKzqwakyZNYt++fRw5cqRZ64P2ysnJ4cMPP/RLW7p0KcYYcnJyIjKPE03gNpSXl8fzzz/PgAEDGDx4cMjP9e/fn4svvpiLL76Y22+/nezsbJYuXeptgRBOgMkjJyeHvn37snnz5og9VTAnJ4cnnniCmpoab+uDnTt3UlZW5rcfdKcuedrCww8/THZ2Nrfccgsff/wxf/vb37pitiIiIiIi0oOMHDmSwsJCysvLqamp8etAzteYMWMoKirizTffpLy8nEcffZTXX3+9U+s2ffp0Zs6cyVVXXcUbb7zB5s2bKSgoYN68eTz11FPtKvP73/8+hYWF3HXXXZSUlLBw4ULuvPNOZs+ezfDhwyO8BCeGwG3o0ksvZeTIkcyZM4f33nuPiooKVqxYwcMPP8wbb7wBwCOPPMKLL77I+vXr2bx5M88++yzR0dHeVgMjR46kpKSE9evXU1NT4/dUj2D69+/Pbbfdxs9//nP+8pe/UFpayvr163n55Zf52c9+1q7lmj17NklJSXzzm9+koKCAgoICrr32WlJSUrjsssvaVWakdUnwYNCgQX6PG3nuuefCijiKiIiIiMjx43vf+x6JiYmcccYZjB492tvjfaBvfvObXH755dx0001Mnz6dlStX8uMf/7hT62aM4bnnnuPiiy/m7rvvZurUqcyZM4d33nmH9PT0dpU5btw4nnvuOT788EPOOOMMvv3tb3Peeefx29/+NrKVP4EEbkMFBQW8+eabTJo0iZtuuokpU6Zw1VVXsXLlSm+AZsCAAfzhD3/gvPPO4/TTT+eNN97g6aef9vaDcdVVV5Gfn8/555/P6NGjeemll1qtx49+9CMeeOABnnrqKc444wy+8IUv8Mc//tHbj0VbxcbG8uqrr9KnTx8uvPBCLrzwQvr168fLL7/cY56+Yay1nVLwvn37vAXv37+f7OxsDh065J2+cOFCpkyZ0inzFukKpaWlrXa8IyKf0T4jEj7tLxKKb5NmEZFQNmzYwJo1a0hKSuKss84KmS8+Pt6EnBigS1oeDBgwgFmzZpGWlsaPfvQjCgoKFDgQEREREREROUZ0WYeJc+fOJS4ujqioLolXiIiIiIiIeN166628+OKLQacNHz485C0UcuJ58cUXufXWW0NO/+ijj07IPiu6LHiQkJDQVbMSERERERHxc/fdd3PzzTcHndarl55gL5+54IILWmwpn5KS0oW16Tm0l4iIiIiIyAhEjmUAACAASURBVHFv8ODBLT7KT8RjwIABDBgwoLur0ePoHgIRERERERGR40hnPBih24MHnfW0BxERERGR45H+P4tIS6y1HD16NOLldkvwwFpLQUEBP/zhD5k6dWqnLJiIiIiIyPEmLi6O6upqBRBEJChrLZs2baK8vBwAY8J+EmOrurzPA2stF198MR988IE37a233uKSSy7p6qqIiIiIiBxTYmJiSEhIoLCwkD59+kT0xOBY1tDQoE4P5YTnaXFQXl5OfX099fX1Ee27ocv3MGMMOTk5fsGD+fPnK3ggIiIiIhKG3r17k5CQwAcffEDv3r0VQAB2795NYmJid1dDpMeor68nPj6evLy8iJXZLeG5K6+8kscee8w7vmrVKg4dOsRJJ53UHdURERERETmmpKen07t3bzZu3Eh9fX13V6fbNTY2kpSU1N3VEOkRjDEMGDCAvLy8iLbI6ZbgwcSJE5kwYQIpKSl8/etf54ILLqB3797dURURERERkWNSamoqqamp3V2NHqG0tJQxY8Z0dzVEjmthBQ+MMQnAY8A4wALXAsXAC0A6sBmYY63dE2Z5LFy4UAEDERERERERkWNAuE9b+D3wlrU2B5gIrAd+DLxrrR0DvOuOh02BAxEREREREZFjQ6vBA2NMPDAdeBzAWnvUWrsXmAU85WZ7CvhSZ1VSRERERERERLqPae0ZscaYPODPQBFOq4OVwC3AVmttgpvHAHs84wD79u3zFlxaWhr5mouIiIiIiIhIm/j2DxIfHx/241rC6fOgF5AP3Gyt/a8x5vcE3KJgrbXGmJBRiLZ0XnLkyBH69u0bdn6R7qKOeUTaRvuMSPi0v4i0jfYZkc4XTp8HVUCVtfa/7vhLOMGET40xKQDu6872VuLAgQPMnz+fCy64gNmzZ7e3GBERERERERHpBK22PLDW7jDGbDHGZFtri4GzcW5hKAK+ATzovv6zPRWorq5m0qRJHDhwwJu2efNm0tPT21OciIiIiIiIiERYuE9buBmYb4xZDeQBv8QJGpxrjCkFznHH22zw4MHk5ub6pc2fP789RYmIiIiIiIhIJwinzwOstQXAlCCTzo5EJa644gqWL1/uHd+0aVMkihURERERERGRCAi35UGnuvTSSxk1ahS33XYbK1as4PHHH+/uKomIiIiIiIiIK6yWB50tPj6elStX4jzxUURERERERER6kh7R8gBQ4EBERERERESkh+oxwQMRERERERER6ZkUPBARERERERGRFvXo4MHRo0fZt29fd1dDRERERERE5ITWI4MH69at46677iI3N5df/epX3V0dERERERERkRNajwsevPXWW5x++uk8+uij1NTU8OKLL1JfX9/d1RIRERERERE5YfW44MGMGTOIi4vzjldXV/POO+90Y41ERERERERETmw9LngQGxvLl7/8Ze94fHw81dXV3VgjERERERERkRNbr+6uQDBXXnklmzdv5sorr+TCCy+kb9++3V0lERERERERkRNWjwweTJ48mVdffbW7qyEiIiIiIiIi9MDbFkRERERERESkZ1HwQERERERERERapOCBiIiIiIiIiLTomAoeVFRUcPjw4e6uhoiIiIiIiMgJpccHDw4dOsQLL7zAJZdcwsSJE3njjTe6u0oiIiIiIiIiJ5QeHzx46KGH+Pa3v81//vMfAObPn9/NNRIRERERERE5sfT44MHll1/uN75kyRIqKiq6qTYiIiIiIiIiJ54eHzwYO3Ys+fn53vH8/Hx2797dLJ+1tiurJSIiIiIiInLC6NXdFQjHjTfeyOrVq/n6179Obm5us+kNDQ3k5eUxduxYpk6dyimnnMK0adOIiurxsRERERERERGRHu+YCB7Mnj2b2bNnh5y+bt06qqqqqKqq4p133mHw4MGUlJR0YQ1FREREREREjl/HRPCgNR9//LHf+NSpUzHGBM377LPPUl1dzSmnnMKkSZM46aSTuqKKIiIiIiIiIses4yJ4UFhY6Dd+6qmnhsz71FNPsXz5cgB69erFSy+9xMyZMzuzeiIiIiIiIiLHtOMiePDII49w00038fHHH/Pxxx8zY8aMoPmOHDlCQUGBd7yhoYHs7OygeXft2sW6devIz89nwIABnVJvERERERERkWPBcRE8iIqKIjc3l9zcXL7xjW+EzFdYWEh9fb13PC0tjZSUlKB5Fy5cyHe+8x2MMeTm5nLllVfy3e9+N+J1FxEREREREenpjovgQbjS09N5+OGH+e9//8vy5cuZNGlSyLyeWxustRQVFQV9PKTHwYMH6devX8TrKyIiIiIiItITnFDBg+TkZK699lquvfZaAL9WCIE8wQOPU045JWi+xsZGcnNzGTJkCFOnTmXq1KlcddVVxMTERK7iIiIiIiIiIt3ohAoeBAp1gm+tZdKkSdTV1VFcXAzAlClTguYtLi6mtraW2tpaysrKePvtt/nmN7/ZaXUWERERERER6WondPAgFGMMv//97wHYu3cva9euJTExMWjeFStW+I239JjIhx9+mJUrVzJlyhQmT57M5MmTdbuDiIiIiIiI9HgKHrQiISGBM844I+T0qqoqoqKiaGpqAkK3UABYsGABy5Yt48033wTgySef5Etf+lJkKywiIiIiIiISYQoedNDdd9/N97//fVatWsWKFSs466yzguarr6/3e0wkwOTJk4Pmraqq4rHHHmPy5MlMmTIl5BMhRERERERERLqCggcR0L9/f6ZNm8a0adNC5ikqKuLw4cPe8eTkZNLS0oLmXbZsGb/73e+845deeilPPPFE5CosIiIiIiIi0gYKHnSRsWPHsnjxYlauXMmKFSuIi4sL2TdCYD8KGRkZIcv917/+RWpqKmPHjqV3794RrbOIiIiIiIgIKHjQZWJiYsjLyyMvL4/rrruuxbwrV670G8/Pzw+ar6mpie985zvU1tbSp08fJkyYwAsvvBCyc0cRERERERGR9lDwoAe6+eabWbZsGStXrmT16tUhgwcbN26ktrYWgLq6OkpKShg4cGDQvJ9++inGGIYMGdJp9RYREREREZHjk4IHPdCsWbOYNWsWAEePHg15O0KwFgqhboV49NFH+d3vfkdaWhr5+flcf/31TJ8+PbIVFxERERERkeNSVDiZjDGbjTFrjDEFxpgVblqiMWaBMabUfQ1+yVs6pKV+DJKTk7noootITU0FQj+9AT4LNFRVVfHaa6+xc+fOoPmstX4dO4qIiIiIiIi0peXBmdbaXT7jPwbetdY+aIz5sTt+Z7APzpgxg4kTJ3rv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KioqVF5e7rr9WDAYjHsqRF8CiTfffFMvvPCC054+fXrU8KClpUXf/va3nZBh/Pjxuvzyy12vCwAARi7CAwAAhpmkpCSNGzdO48aNi1lnjNG2bdtUWVmp8vJy1dTUuE6F6MvCjn0JJCJDhnHjxrmGBxs2bNArr7yigoICFRQU6JRTTtExxxzj2gcAADC8EB4AADBCGWNUXFys4uLiXmsvueQSZweJ8vJyzZw507U23lEK3esKCgpcr/nXv/5Vv/vd75z2ypUrXcOD5cuXKzMzU4WFhSooKNAFF1yg5ORk12sDAIDBR3gAAMAoEM90ibBVq1Zp3759zlaVAzEVIt7alpYWrVmzxmknJibqoosuilq7detWPffccyooKFBhYaFmz56tOXPmuPYBAAD0H+EBAADo4sQTT4y77oknnnBCBre1GaSeUyHcRil0r8vLy1NiYmLU2rfeekurVq1y2suXL3cND37xi1+oo6PDCRq+9rWvKT093bW/AACgK8IDAADQL+PGjdP5558fV+1Pf/pT7dy5UxUVFaqsrFRJSUnUunhDhmi1+fn5rrWPP/64amtrnfbHH38cNTwoLS3V6tWrlZ+fr4KCAs2cOVMnnXSS63UBABgtCA8AAMCgO+OMM3TGGWf0WldSUqKHHnpIlZWVqqysjDkVIt6FHQ8ePNglOEhISFBubm7U2g8++ECPPfaY0168eLFreHDPPfeourpaBQUFys/P19e+9jXX6wIAMNIRHgAAgGEjPz9fl112WVy1S5Ys0bx581RZWamKigrNmDEjal1VVVWXdm5urutUiO61sUYz/P73v9f27dud9p///Oeo4UFZWZluv/125efnKz8/X9OmTdM555zjel0AAIYjwgMAADAinXbaaTrttNN6rUtPT9d9993njGYYM2aMa21fdpCIN2jYuXOnnn32Wad9yimnuIYHDzzwgN577z0lJyfr6KOP1jnnnKOpU6e69gEAgMOF8AAAABzRvF6vrrzyyrhqL7jgAk2aNElVVVWqrKx0XYCxra1NNTU1Xc7l5eVFre3LaIY///nP2rJli9OeNm1a1PCgvr5eS5YsUV5engoKClRcXKzvfOc7rtcFAOBQER4AAACEnHTSSXEtkGit1UMPPaSqqipVVFSoqalJycnJUWu7hwduIUO0WregobKyUq+88orTnjJlimt48Oijj+qF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5cvjqjvzzDO1efNmZzTDuHHjXGuttUpMTFRHR4ek+HelcJsyIfVt5MO+ffu0f/9+Z3tMt606//u//7vLdIoFCxZo/fr1UWsff/xxlZWVKSsrS1lZWfr617+uiRMnuvYBwPBCeAAAAAAcBtnZ2Zo3b15ctRs2bJC11tmZIj8/P2pdSkqKzj//fNXX16u+vj7mh/FooxSisdb2qM3Kyopa6/f746qTpE2bNmnr1q1Oe8OGDVH7u2/fPp111llOyDBlyhT99re/jXrNXbt2Ofeel5enzMxM13UsABwawgMAAABgGDLGKCMjQxkZGa41kydP1hNPPBHX9S6//HLNnTvX+bB9/PHHR61rampSe3u7005NTXXd0jLeQKIvtXV1dSovL1d5ebmkngtdRnrkkUf08MMPO+1f/OIXriNBVqxYoZSUFCeUuOSSS5ScnOx6bQBdER4AAAAAo8CJJ56oE088sdc6j8fT5Rv95uZm11qfz6d58+apvr5efr9fubm5rrXxjlKId9RDX2qDwaDuv//+LgtPXnrppVFrf//732vlypX6p3/6J918880x7wkYTQgPAAAAADiMMc6385MmTYpZe9FFF+miiy6K67o333yzKisrnaDBbQeLvkyFiLc2EAh0CQ4yMjJc13GoqqpSWVmZHnnkEa1bt0633HKLli1bpsTERNd+AKMB4QEAAACAQRfv7hVnnXWW3n//fSdkiLV7w4QJEzRr1izV1NSoubnZdSpEfwMJv9+v9evX67vf/W5cfQeOZIQHAAAAAIaNlJQUTZgwQRMmTOi19o477pAk7dixQ9OnT3ety8zM1MqVK+X3+3sNJGpqarq077zzThZhBER4AAAAAOAIl52dreuuuy6u2ltvvVUTJkzQb37zG5133nn68pe/PMi9A0YGwgMAAAAACMnOztYNN9ygf/mXf3FdF0GSXnrpJTU0NOiCCy6QMeYw9hAYGoy/AQAAAIBuCgsLXXdaOHDggG688UYtWbJECxcu1HvvvXeYewccfoQHAAAAANAH999/v/bs2SNJ+utf/6oFCxaourp6iHsFDC7CAwAAAACIU0NDgx566KEu55YuXaq8vLwh6hFweBAeAAAAAECcMjIy9PLLL+uss86SJOXm5urHP/7xEPcKGHwsmAgAAAAAfXDUUUdp/fr12rx5sw4ePCiv1xu1zu/3KxAIaOLE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\n",
      "text/plain": [
       "<Figure size 1152x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 1, figsize=(16, 5), sharey=False)\n",
    "\n",
    "df_deviance = calculate_deviance(rgr, x_test, y_test)\n",
    "\n",
    "df_deviance['train_error'].plot(\n",
    "    kind='line',\n",
    "    color='k',\n",
    "    linestyle=':',\n",
    "    ax=ax\n",
    ")\n",
    "\n",
    "df_deviance['test_error'].plot(\n",
    "    kind='line',\n",
    "    color='k',\n",
    "    linestyle='-',\n",
    "    ax=ax\n",
    ")\n",
    "\n",
    "ax.set_title('Gradient Boosting - Deviance; comparing train and test errors vs n_estimators')\n",
    "\n",
    "ax.legend(ncol=2, fontsize='x-large', shadow=True)\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Regression Ranges"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:18: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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2GJ7hDJWflvSbspDpisGF3FjvB54O/CQnlg6/lPA8wBs30QpAK+QdBj4F7AixWBXbY9pSavgyH7dQFk5bDfwGPCuAcXaGLUAPJd6fqrbWvdpcrUHkm6n3DE5WdIo8BngWuAOSe8BHqEscoTKV3essn257TFJaygfIgGstj3xgf6+yJLHEREREREx1DI9LCIiIiIihlqKloiIiIiIGGopWiIiIiIiYqilaImIiIiIiKGWoiUiIiIiIoZaipaIiIiIiBhqKVoiIiIiImKopWiJiIiIiIihlqIlIiIaQdILJY1Jml9fz5X0F0mLBhxaRERMMdkedAwRERE9kfRe4CPAAmA98JDtjw02qoiImGopWiIiolEkjQBnAAZeY/vxAYcUERFTLNPDIiKiaW4GzgRuSMESETE95E5LREQ0hqSZwDZgE3A+8ArbY4ONKiIiplqKloiIaAxJtwAzbV8q6RvALNuXDDquiIiYWpkeFhERjSBpGbAUuKJu+igwX9LbBhdVRET0Q+60RERERETEUMudloiIiIiIGGopWiIiIiIiYqilaImIiIiIiKGWoiUiIiIiIoZaipaIiIiIiBhqKVoiIiIiImKopWiJiIiIiIihlqIlIiIiIiKG2n8Bskc3fssKHSEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x_sample = np.arange(-10, 10, 0.05)\n",
    "y_sample = np.random.normal(loc=0, scale=25, size=x_sample.shape[0]) \n",
    "y_sample *= x_sample \n",
    "\n",
    "pd_random_samples = pd.DataFrame(\n",
    "    {\n",
    "        'x': x_sample,\n",
    "        'y': y_sample\n",
    "    }\n",
    ")\n",
    "\n",
    "fig, ax = plt.subplots(1, 1, figsize=(12, 8), sharey=False)\n",
    "\n",
    "pd_random_samples.plot(\n",
    "    title='Regression Ranges', kind='scatter', x='x', y='y', color='k', alpha=0.95, ax=ax\n",
    ")\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(400, 2)"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd_random_samples.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(17.333333333333332, 20.0)"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean([10,20,22]), np.median([10,20,22])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:21: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAy0AAAHwCAYAAACrL4DeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzde3xU1bk38N+TC0m4BRgQAjFcjiAK1ojX2OK12lZySutrW3rwIGrVGkXFerAXa8G2R/ForbXN0dpWq/Worb4HPdFWfbW1VFEUTsQbEJCQC0mAQBICuc96/5jZ25nJXPbM7Jm99szv+/nkAzOzZ2bNvq5nPWutLUopEBERERER6SrH6QIQERERERFFw6CFiIiIiIi0xqCFiIiIiIi0xqCFiIiIiIi0xqCFiIiIiIi0xqCFiIiIiIi0xqCFiMglRORvIvIbp8uRaiKiROTSgMf1InKbk2VyCxFZLiKDTpeDiMhuDFqIiGwiIqv9Fe7Qv2NCljtdRN4UkV4RaRGRO0UkN+D1S0XE1ptoichJIvKMiOwVkX4R2S0iD4jIZDu/J84y/T8ReTTMSyUAnrH5u84J2SYH/dvgIju/RwNPA5jmdCGIiOzGoIWIyF718FW6A/92GS+KyNEAXgGwDcDJAK4FcA2An6aqQCLyRQAbAAwC+GcAx/i/80wA7/rLpA2lVKtSqjdFH78Avm1yJoD/BbBOROal6LtMIpITGJimilKqRynVlurvISJKNwYtRET2GvJXugP/hgJevxZAF4ArlVIfKqXWAfghgBUiMkpEzgHwOGB2k1Kh2QgR+aGItIrIARF5TERGRyqMiBQBeBTAa0qpJUqpt5VSDUqpvwA4F8AIAL8KWH5YFzQRuU1E6gMeLxCRP/uzNt0i8o4/MAp8T72I3CEi9/vL2SYi94lInv/1RwGcD+CygN95TsDvvhQRiEi+P6u1y5+t+lBErom0fIh9/m3yMYDvAsgHcF7I518gIm+ISI+INIvIIyLiCXg9R0T+XUT2+X//UyJyU2C3LH/5dojIN0RkK4B+AHP8ry0RkVp/2etF5GciMirgvZ/zf/8h/997IvKFgNe/LyKfiEifvwwv+bdz2O5hInKRiGzyL79XRKpDvu9Rf9bran8GrktEnncyC0dEFIpBCxGRvUpFpMn/92cROTPk9c8CeFkp5Q147i8ARgI4CcCbAK73P29kam4MWPYSABMAnANgCYBKALdGKc+FACYD+PfQF5RSXQB+CWCRiIyz9vMAAGPh64Z0LnyZi5cAPC8ic0KWWwGgBcDp/v9fD+Ay/2s3AlgP4I/49He+afH7HwZwMXzZouMA3AFgrYhcafUHiMgI//sBX0BhPH8egOcAPAXgMwC+AmAGgP8rIuJf7CYANwC4Gb5tthHA7WG+ZiqAKvh+8/EAmkRkOYD/BHCv/7llAD4P4EH/9+cBeB7A2/Ct2wUAVgM44n/9YviCrRsBzAZwAYA/R/mdn/F/3t8BnOgvS6XxfQFOhW97LgLwBQAnALgn0ucSEaVbntMFICLKIBsBXA7gI/gq9tcAWC8iX1RKveJfpgTAGyHvazVeU0r1i0gn4OsmFeY7diulVvr/v1VEnoav0vvDCGU61v/vhxFe/xC+BqzZAN6J+MsCKKX+FvLUbSLyzwC+huBubuuVUnf5/18nIpf7y/pbpVSniPQD6InwO8MSkZnwVfSPV0pt9T+9S0SOhS8w+m2Mj9gmvvFCIwEIgB3wBWCG2wH8Qin1QMB3XgZgN3yV/loA3wFwn1Lqcf8iPxOR0+ALKAMVAvhXpVRDwGetBvC9gPd+IiLXA3hdRG7wPzcewPNKqTr/Y+NfAJgO3/7yF6XUAIAGf5ki+TcAm0P2mRUA/ltEblNK7fY/3wdguVKqz1/OB+ELzoiItMCghYjIJkqpF0OeWi8ipfBVHF8J85ZEvBfyeA98LePJGrC6oIhMArAGvm5VU+C7lhTCV6EOFFqZ3gNgZhJlBIBT4As23v008QH4yzAU9h3BvgCgDb4sx70ALlNKdQS8fiqAM/yBRKjZIrILvgzKWyGvbcDwoKUtJGCZBN86+pmIBGYxjB9yjFLqHX/3vJdE5DUArwP4b6XUNv8yf4Qvy7NbRF4G8CqAdUqpQxF+7zwAr4U897r/O4+HLxgDgK1GwOK3B74MHRGRFhi0EBGl1gYA/yfgcQt8Ff1AkwNei6U/5LFC9K6+RmV3PnzdsULNg2+AvjFZgBefVqIN+SGPHwVQBmCV/3098HWnGpFkWa0w3n8m/F2mQj4/lnqlVBN8mZ8e+Lp9zVNKtQd8/lr4xxWFaAVgDKa38l2HQx4bZb8RwF/DLN8EAEqpq0Tkfvi69l0A4Mcicr1S6iGlVLOIzIWvK9d58GXY1orI6UqpRgtliiTctgrdD4iIHMMxLUREqbUAQGBl8g0AF4hI4Pn3i/BVwP/X/7gfAMSe2aZeBrAXwPdCXxCRsfCNM/lvpVSn/+m98GUSAi0IeXwWgGql1PNKqffhC7ZmJVC2fnwaBFi1yf9vmVJqR8jfzng+SCn1Mnxdr34U8PS7AOaF+ewdSqlu/3raA6Ai5OPOsPB9bfDtC8dG+PzegGU/UEr9TCn1Jfi6vF0d8FqfUuovSqlV8I09GQnf2JtwPoRvewU6G76gJFKXQSIi7TBoISKyiX8WqPNEZJaIlIvIr+BrKf95wGL/CaAYwMMiMk9EvgzgxwAeUEoZLfNG1uPLIjJJoswOFotSqgfAcgDniciTInKaiBztn43qNfiCpRsC3vL/AHxeRL4mIseIyHcBLAz52G0AlorICSJSDuBJxB98AL7febKI/JOITBSR0IxOuN+zA8Dv4Ft//+ov44kicoWIRJuQIJJ7AFwjIkbXttsBLPZvy3J/2b4oIr81ZuiCr1vZTSKyVERmi8hN8GVFrGRffgDgBhH5gYjMF5FjReQrIvIQAPh/z1r/DGLTRaQCvvX/kf/1K0XkKv9vng5gKYAxxuth/AeABeKbuW2u+GZ5ewDAE4Fd14iIdMeghYjIPiUAHgPwMXwZjmMBfF4p9T/GAv4uPBfCN+vVJgC/9v/9IGCZdwDcD+Ah+DIfv0ymUEqpP8OXGRgB4EX4xjH8BcBBAOUhA+F/D98UyL+CL+twNIBfhHzk5fBdPzYCWOf/LEuD+EPcC2A/fON09sE3s5oVVwO4D7519hF84zouA/BJAmV4Hr7gaQ0AKKX+Cl+3q8/A151ui/+7DuHTcT8/h2+b3A9fduwM/2+JeW8Z/wD8r8M3g9dG+NbbagDN/kUOwzcpwlMAtgN4FsEzyh2Eb/3/Db797GYAVyulXo3wfVsAfBm+bMt78HV7ewHAt2OVlYhIJ6KUrTddJiIiFxCRH8M3QcD/UUq94HR53E5EfgfgRKXUyU6XhYgoE3EgPhFRFlJK/VBEtgM4QURe83cjIwtEZCqAr8I3mH4IwD/DNw1zuBnHiIjIBsy0EBERxcF/p/in4etCVgjfvV4eUEo97GjBiIgyGIMWIiIiIiLSWsZ2D+vs7GQ0RkRERETkQsXFxUH3iuLsYUREREREpDUGLUREREREpDUGLWS7uro6p4uQlbjencN17wyud2dwvTuD690ZXO/6YNBCRERERERaY9BCRERERERaY9BCRERERERaY9BCRERERERaY9BCRERERERay9ibSxIRERGROwwMDKCrq8vpYgxTVFSE9vZ2p4uRMfLz8zF27NiE3sughYiIiIgcMzAwgI6ODkycOBEiEvsN5Fr79+/H5s2bMX/+fIwYMSKu97J7GBERERE5pquriwFLlvB4PMjPz8eLL76I/v7+uN7LoIWIiIiIHMWAJTuICPLz89Hb24t33nknrvcyaCEiIiIiorTJzc3FkSNH4noPgxYiIiIiIkorpVRcyzNoISIiIiJyiUWLFmHFihVOFyPtGLQQEREREWWxHTt24OKLL0ZJSQlmzZqFlStX4vDhw1Hfc+edd2LcuHHD/j755JOUlJFTHhMRERERpUl/f3/c0/2mUnd3NxYvXox58+bhpZdewsGDB3H99dejs7MTv/vd76K+t6ysDK+88krQcxMnTkxJORm0EBEREZF2Kisr0/6dNTU1cb9n0aJFmDFjBiZNmoTHHnsMAwMDuPjii7F27VoUFhZi0aJFmDlzJqZMmYLHH38cSils374dAwMDuOeee/Dkk0+ira0NM2fOxDXXXIPLL7/c/OyGhgasXLkSb7zxBjweD2644Ya4yub1evHv//7vePTRR9HT04MLL7wQp5xyCm6//XbzppnPPPMM2tvb8fDDD6O4uBgAcM899+Ab3/gGbr/9dsyYMSPi5+fm5mLy5Mlxr7NEMGhxoYaGBlRVVaG9vR0ejwfV1dUoKytzulhEREREWen555/HV7/6Vfz5z3/GJ598ghUrVmDkyJG48847AQDr1q3D1772NTz33HMYGhoCANxwww1477338POf/xyzZs3C5s2bcdNNNyE3NxfLli2DUgqXXnopcnNzUVNTgxEjRuD222/Hli1bMGvWLEvleuihh1BdXY177rkHp512Gl544QWsXbs2aJm33noLp556qhmwAMB5552HnJwcvP3221GDlj179uD4448HABx//PH4t3/7N5x++unxrDrLGLS4UFVVFWprayEiaGxsRFVVVUItA0RERESUvHHjxuG+++5Dbm4ujj32WNx222249dZbcdtttwEAJk+ejHvvvRc5Ob7h5PX19Xjqqafw9ttvY86cOQCAGTNmoK6uDr/+9a+xbNkyvP7669iy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KlBZWYmGhgani0REREREGYhBCyXMmBa6qakJtbW1qKqqcrpIRERERJSBGLRQwjgtNBERERGlA4MWSpjH44FSCgA4LTQRERERpQyDFkoYp4UmIiIionTglMeUME4LTURERETpwEwLERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERE5oqGhAZWVlaioqIi6XF6aykNERERERBSkqqoKtbW1EJGoyzHTQkREREREjmhvb48ZsAAMWoiIiIiIyCEejwdKqZjLMWghIiIiIiJHVFdXo7y8HKWlpVGX45gWIiIiIiJyRFlZGWpqamIux0wLERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUELERERERFpjUEL2aahoQGVlZVYsmQJKisr0dDQ4HSRiIiIiCgDMGgh21RVVaG2thatra2ora1FVVWV00UiIiIiogzAoMUhRlaioqIiY7IS7e3tEBEAgIigvb3d4RIRERERUSZg0OIQIyvR1NSUMVkJj8cDpRQAQCkFj8fjcImIiIiIyArdG9QZtDgkE7MS1dXVKC8vx5QpU1BeXo7q6mqni0REREREFujeoJ7ndAGylcfjQWNjI0QkY7ISZWVlqKmpQV1dHWbPnu10cYiIiIjIIt0b1JlpcYiRlSgtLXVFVkL3lCERERERJU73bv7MtDjEyEq4hZEyFBE0NjaiqqrKVeUnIiIiosiqq6tRVVWF9vZ2eDwe7RrUGbSQJbqnDImIiIgocbo3qLN7GFmie8qQiIiIiDIXgxayxG1jcIiIiIgoc2jVPUxEcgG8C6BZKVUpIjMBPAXAA2ATgH9VSvWLSAGAxwCcDKAdwDeUUvUOFTsr6J4yJCIiIqLMpVum5UYAHwc8XgvgPqXUMQAOArjS//yVAA76n7/PvxwREREREWUgbYIWESkFsAjAb/yPBcB5AJ7xL/J7AF/x/3+x/zH8r58vxihxIiIiIiLK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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "\n",
    "fig, ax = plt.subplots(1, 1, figsize=(12, 8), sharey=False)\n",
    "\n",
    "pd_random_samples.plot(\n",
    "    title='50th Quantile Regression', kind='scatter', x='x', y='y', color='k', alpha=0.95, ax=ax\n",
    ")\n",
    "\n",
    "for quantile in [0.5]:\n",
    "    \n",
    "    rgr = GradientBoostingRegressor(n_estimators=10, loss='quantile', alpha=quantile)\n",
    "    rgr.fit(pd_random_samples[['x']], pd_random_samples['y'])\n",
    "    pd_random_samples[f'pred_q{quantile}'] = rgr.predict(pd_random_samples[['x']])\n",
    "    \n",
    "    pd_random_samples.plot(\n",
    "        kind='line', x='x', y=f'pred_q{quantile}', linestyle='-', alpha=0.75, color='k', ax=ax\n",
    "    )\n",
    "    \n",
    "ax.legend(ncol=1, fontsize='x-large', shadow=True)\n",
    "\n",
    "fig.show()\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:21: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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X/va11i8eDFLliwJLjNo0CCeffZZFi9ezNy5cykoKODcc8/l9ttvD9tWdXV1WD/qd999l29+85vB6YcffpiHH36Y0047rcc+M21tbezfv5+WlpZO5/SUKVO6Xc9Ya6P+4slijDkZeAs4zVq72hhzH9AAXG+tHRqy3AFr7THGmErgTmvt3/zzXwG+b619J7DsoUOH3P9iWaq6urrHk06SQ/nuHuW9O5Tv7lC+uyOT8z3wCod0NW/ePEpKSrj//vvdTkpUnnzySRYsWODaQE6bNm1i48aNFBUVBd/z0pWioqKwzj2eaB6GU1Oy01obaGT3NPBFYE+g2Zf/30/8n9cBx4asP84/T0REREREMownghZr7cdArTHmOP+srwIfAM8D/+Kf9y/Ac/7/Pw9cZhyzgUMhzchERERERDLaypUrGTt2bLd/K1eudDuJCeWVPi0A1wNPGmP6A1uBK3CCqt8YY64EdgD/7F/2RZzhjjfjDHl8ReqTKyIiIiLZzq13nnzhC1/gjTfe6Pbz4uKux6i6+OKLufjii5OVrKTxTNBirV0PnNzFR1/tYlkLXJf0RImIiIiIeNCAAQMoKSlxOxkp44nmYSIiIiIiIt1R0CIiIiIiIp6moEVERERERDxNQUs3ampqKCsrY86cOZSVlVFTU+N2kkREREREspKClm6Ul5ezfv16du7cyfr16ykvL3c7SSIiIiIiWUlBSzfq6+sxxnkRpzHGtbeGioiIiIhkOwUt3fD5fDgjK4O1Fp/P53KKRERERCTbzZs3j+uvv97tZKScgpZuVFRUUFpayrhx4ygtLaWiosLtJImIiIiIJNzmzZuZP38+xcXFlJSUsGjRIg4fPtzjOocPH2bp0qWceOKJjBo1ilNPPZXnnnsuaWn0zMslvWb8+PFUVla6nQwRERERySBHjx6lf//+bicjqLGxkXPPPZfPf/7zvPzyyxw4cIB//dd/5dChQ/ziF7/odr0bbriBt99+m3vvvZeJEyfyxz/+kSuvvJLBgwdz5plnJjydClpERERExHPKyspSvs94HljPmzePiRMnMmLECB5//HFaW1uZP38+d911FwUFBcybN49JkyYxevRonnjiCay1VFVV0drayvLly/n1r3/Nnj17mDRpEtdccw1XXHFFcNs1NTUsWrSIN998E5/Px4IFC2JKW0dHBz/60Y947LHHaGpqYu7cuZx88sksWbIk2F/76aefpr6+nocffpiioiIAli9fzre//W2WLFnCxIkTO223ubmZZ555hgcffJCvfOUrAFxzzTW89tprLF++XEGLeEtNTQ3l5eXU19fj8/moqKhg/PjxbidLREREJKWef/55zjvvPF566SW2bt3K9ddfz8CBA7njjjsAePbZZ7ngggt47rnnaG9vB2DBggW899573HvvvZSUlLBu3TpuuOEGcnNzueyyy7DWcskll5Cbm0tlZSX9+/dnyZIlbNiwgZKSkqjS9eCDD1JRUcHy5cuZNWsWL7zwAnfddVfYMm+99RYzZ84MBiwAZ555Jjk5OaxevbrLoKW1tZX29nby8/PD5g8YMIBXXnmF1tZW8vLyYsnCXilokbgFhoU2xlBbW0t5ebma1ImIiEjWGTp0KPfccw+5ubkcd9xx3HrrrXz/+9/n1ltvBWDUqFHcfffd5OQ43cm3b9/OihUrWL16NVOnTgVg4sSJVFdX89BDD3HZZZfx+uuvs2HDBt555x0mT54MwCOPPML06dOjTtf999/Ptddey0UXXQTAwoULWbt2LS+88EJwmT179jBq1Kiw9fLy8jjmmGPYs2dPl9sdPHgws2fP5u6772bGjBkce+yxvPLKK7z44oscPXqU+vp6Ro8eHXU6o6GgReKmYaFFRERE4KSTTiI3Nzc4fcopp9DS0sK2bdsAKC0tDQYsAOvXr8daG2xaFdDW1hbczqZNm/D5fMGABWD48OFh0z1paGhg165dzJo1K2z+7Nmzw4KWeD344IMsWLAg+N2mTJnCpZdeysMPPxz2XRNFQYvEzefzUVtbizFGw0KLiIhIQmVS642BAweGTXd0dADw8ssvd/os8EA4VUaNGkVdXV3YvNbWVg4cONCpBibU+PHjefbZZzly5AiHDh2iuLiYJUuWMGTIEIYPH57wdGrIY4mbhoUWERERgXXr1gX7qgCsWbOG/Px8Jk2a1OXypaWlAOzcuZOSkpKwv8A606ZNo76+ni1btgTXq6+vZ/PmzVGlaciQIYwZM4Y1a9aEzV+9enXY9OzZs3n77bdpaGgIznv11Vfp6OjglFNO6XU/AwcOpLi4mKNHj/Lcc89x9tlnJ6WmRUGLxC0wLPSqVauorKxUJ3wRERHJSgcOHOCmm27io48+4uWXX+b222/n8ssvp7CwsMvlS0pKuOSSS1i4cCErVqxg69atbNy4kSeeeIJ7770XgC9/+ctMnz6dq6++mrVr17JhwwauuuqqmDq4X3fddTzwwAOsWLGCLVu2cP/99/Paa6+FLXP++efj8/m46qqr2LhxI3/961+56aabmD9/flgn/JkzZ/LQQw8Fp1999VVefvlltm/fzt/+9je+9a1v0dzczJIlS6LPuBioeZiIiIiISB+cc845DBo0iG984xu0trZy3nnnsXTp0h7Xue+++/jZz37G3Xffzfbt2xk8eDDTpk3j6quvBpxmYk8++SQ33HADZ599Nj6fj+uvv56Wlpao03XttddSX1/PLbfcQnNzM1/72tdYvHhxWGAxaNAgnn32WRYvXszcuXMpKCjg3HPP5fbbbw/bVnV1dVj/5YaGBpYtW8bOnTspLCzkq1/9Kg888ABjxoyJOn2xMNbapGzYbYcOHcrML5YGqqurmTJlitvJyDrKd/co792hfHeH8t0dmZzvgVcnpKt58+ZRUlLC/fff73ZSovLkk0+yYMEC1wZQ2rRpExs3bqSoqIi5c+d2u1xRUVFY5x41DxMREREREU9T8zARERERkTSzcuVKLrjggm4//5//+R9OPfXUFKYouRS0iIiIiIjEKRHvPInHF77wBd54441uPy8uLu5y/sUXX8zFF1+crGQljYIWEREREZE0M2DAAEpKStxORsqoT4uIiIiIiHiaghYRERERcVWmjmYr4ay1tLW1xbWughYRERERcc2QIUPYt2+fApcssHfvXnbu3Im1lvz8/JjWVZ8WEREREXFNXl4eQ4cOpa6ujoaGBnJyvPNMva2tjX79VFxOBGst+/fvp6Ghgba2NmbMmBHT+joKIiIiIuKqvLw8xo0bR11dHe+++y5Hjx51O0kA7Nu3j+HDh7udjIxSWFjI7NmzGTZsWEzrKWgREREREU8YO3YsY8eOdTsZQdXV1UyZMsXtZAjq0yIiIiIiIh6noEVERERERDxNQYuIiIiIiHiaghYREREREfE0BS0iIiIiIuKKmpoaysrKmDNnTo/LafQwERERERFxRXl5OevXr8cY0+NyqmkRERERERFX1NfX9xqwgIIWERERERFxic/nw1rb63IKWkRERERExBUVFRWUlpYybty4HpdTnxYREREREXHF+PHjqays7HU51bSIiIiIiIinKWgRERERERFPU9AiIiIiIiKe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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "\n",
    "fig, ax = plt.subplots(1, 1, figsize=(12, 8), sharey=False)\n",
    "\n",
    "pd_random_samples.plot(\n",
    "    title='Regression Ranges [10th & 90th Quantiles]', kind='scatter', x='x', y='y', color='k', alpha=0.95, ax=ax\n",
    ")\n",
    "\n",
    "for quantile in [0.1, 0.9]:\n",
    "    \n",
    "    rgr = GradientBoostingRegressor(n_estimators=10, loss='quantile', alpha=quantile)\n",
    "    rgr.fit(pd_random_samples[['x']], pd_random_samples['y'])\n",
    "    pd_random_samples[f'pred_q{quantile}'] = rgr.predict(pd_random_samples[['x']])\n",
    "    \n",
    "    pd_random_samples.plot(\n",
    "        kind='line', x='x', y=f'pred_q{quantile}', linestyle='-', alpha=0.75, color='k', ax=ax\n",
    "    )\n",
    "    \n",
    "ax.legend(ncol=1, fontsize='x-large', shadow=True)\n",
    "\n",
    "fig.show()\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "## "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "\n",
    "rgr_min = GradientBoostingRegressor(n_estimators=50, loss='quantile', alpha=0.25)\n",
    "rgr_max = GradientBoostingRegressor(n_estimators=50, loss='quantile', alpha=0.75)\n",
    "\n",
    "rgr_min.fit(x_train, y_train, monitor=lr_changer)\n",
    "rgr_max.fit(x_train, y_train, monitor=lr_changer)\n",
    "\n",
    "y_test_pred_min = rgr_min.predict(x_test)\n",
    "y_test_pred_max = rgr_max.predict(x_test)\n",
    "\n",
    "df_pred_range = pd.DataFrame(\n",
    "    {\n",
    "        'Actuals': y_test,\n",
    "        'Pred_min': y_test_pred_min,\n",
    "        'Pred_max': y_test_pred_max,\n",
    "    }\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_pred_range['Actuals in Range?'] = df_pred_range.apply(\n",
    "    lambda row: 1 if row['Actuals'] >= row['Pred_min'] and row['Actuals'] <= row['Pred_max'] else 0,\n",
    "    axis=1\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5098039215686274"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_pred_range['Actuals in Range?'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Actuals</th>\n",
       "      <th>Pred_min</th>\n",
       "      <th>Pred_max</th>\n",
       "      <th>Actuals in Range?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>6.855</td>\n",
       "      <td>7.484626</td>\n",
       "      <td>14.393532</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>85</th>\n",
       "      <td>6.989</td>\n",
       "      <td>8.285103</td>\n",
       "      <td>14.393532</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>7.799</td>\n",
       "      <td>7.677105</td>\n",
       "      <td>14.393532</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>101</th>\n",
       "      <td>13.499</td>\n",
       "      <td>9.704785</td>\n",
       "      <td>16.737428</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>139</th>\n",
       "      <td>7.053</td>\n",
       "      <td>7.588599</td>\n",
       "      <td>14.458438</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>107</th>\n",
       "      <td>11.900</td>\n",
       "      <td>9.704785</td>\n",
       "      <td>16.699463</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>181</th>\n",
       "      <td>15.750</td>\n",
       "      <td>9.704785</td>\n",
       "      <td>16.739880</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>156</th>\n",
       "      <td>6.938</td>\n",
       "      <td>7.724013</td>\n",
       "      <td>14.393532</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     Actuals  Pred_min   Pred_max  Actuals in Range?\n",
       "31     6.855  7.484626  14.393532                  0\n",
       "85     6.989  8.285103  14.393532                  0\n",
       "95     7.799  7.677105  14.393532                  1\n",
       "101   13.499  9.704785  16.737428                  1\n",
       "139    7.053  7.588599  14.458438                  0\n",
       "107   11.900  9.704785  16.699463                  1\n",
       "181   15.750  9.704785  16.739880                  1\n",
       "156    6.938  7.724013  14.393532                  0"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_pred_range.sample(n=8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Actuals</th>\n",
       "      <th>Pred_min</th>\n",
       "      <th>Pred_max</th>\n",
       "      <th>Actuals in Range?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>148</th>\n",
       "      <td>8.013</td>\n",
       "      <td>8.378825</td>\n",
       "      <td>15.625670</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>162</th>\n",
       "      <td>9.258</td>\n",
       "      <td>7.854222</td>\n",
       "      <td>14.393532</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>6.529</td>\n",
       "      <td>7.558752</td>\n",
       "      <td>14.393532</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>101</th>\n",
       "      <td>13.499</td>\n",
       "      <td>9.704785</td>\n",
       "      <td>16.737428</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>168</th>\n",
       "      <td>9.639</td>\n",
       "      <td>8.383130</td>\n",
       "      <td>15.974935</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     Actuals  Pred_min   Pred_max  Actuals in Range?\n",
       "148    8.013  8.378825  15.625670                  0\n",
       "162    9.258  7.854222  14.393532                  1\n",
       "33     6.529  7.558752  14.393532                  0\n",
       "101   13.499  9.704785  16.737428                  1\n",
       "168    9.639  8.383130  15.974935                  1"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_pred_range.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "148    0.864900\n",
       "162    0.832585\n",
       "33     0.904221\n",
       "101    0.724657\n",
       "168    0.905605\n",
       "dtype: float64"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(\n",
    "    (\n",
    "        df_pred_range['Pred_max'] - df_pred_range['Pred_min']\n",
    "    ) / (\n",
    "        df_pred_range['Pred_min']\n",
    "    )\n",
    ").head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8583335110739386"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# How big is the range ? [0.8 => 180% x min]\n",
    "\n",
    "(\n",
    "    (\n",
    "        df_pred_range['Pred_max'] - df_pred_range['Pred_min']\n",
    "    ) / (\n",
    "        df_pred_range['Pred_min']\n",
    "    )\n",
    ").mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ada Boost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import AdaBoostRegressor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 5.619648305310852\n"
     ]
    }
   ],
   "source": [
    "rgr = AdaBoostRegressor(n_estimators=100)\n",
    "\n",
    "rgr.fit(x_train, y_train)\n",
    "y_test_pred = rgr.predict(x_test)\n",
    "\n",
    "print(f'MSE: {mean_squared_error(y_test, y_test_pred)}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:20: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABCYAAAFNCAYAAADcoG4BAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd3xUVfrH8c8TQggQioAFlSoIgiKudFAQBBFUFLsotrUCKmsXC6uIrro/F1bXBggodhSliSKCdFBAQJQEpCqISDO0hOT8/rhDnJmUmYTMTMr3/XrdV3LOPffeZyZzlfvMKeacQ0REREREREQkFuJiHYCIiIiIiIiIlF5KTIiIiIiIiIhIzCgxISIiIiIiIiIxo8SEiIiIiIiIiMSMEhMiIiIiIiIiEjNKTIiIiIiIiIhIzCgxISIiRZaZjTaz6bGOQ6QoM7NnzWxlrOMQEREpKCUmREQkKszsBDM7aGa/mll8FK/bycyc35ZmZj+b2dBoxuGL5VEzW1+A42YGvYactrqFEF8D37nahNF2QS5xfHukcUjOzOxc33t8XNCuIUDHKMWw2cweisa1RESk9IjqP8hERKRUuxmYBJwCXAh8EuXr/w3YApQDWgEjgf3AU1GOoyB6Awl+5S1Af2C8X93vUY3I8ybwSFBdem6NzSzBOZcWbn0oZmZAGefcofweW5I451KB1FjHkR9mVgZwzrnMWMciIiKxpx4TIiIScWYWh5eYGA2MAW7NoU01M3vfzPaa2W9mNgSwoDZdfb0HdpjZbjObZWatwgzjd+fcVufcBufch8CXQAu/c5uZ3efrTZFmZmvN7J6g61cys9fM7Hdf749vzaxbUJtHfOc46Gs3zczKm9kNeEmQOn69CwaHE7hzbocv9q3Oua2+6t3+dc65DN/1rzOz5WZ2wMzWmdlzZlbeL75zzGy+maWa2R4zW+qrSwRSfM3m++L7KURo+4Ji2Oqc+8PvWlvN7Akze93MdgBfmlmi79x3mNkHZvYn8IavfVMz+9z3GfjTzCb49wQxs9t9cZ9nZt8DacBZwUGZ2b/NbHkO9W8eHhpkZkeZ2Vu+z9pBM9tgZs/k9kLNrLEv7t5mNtXM9pnZGjO7JsR75H8OM7N/mFmy7++z2swe8D2kH25zmZl97zv/Tt/f6lQza4z3mQXY4ovlc98xAUM5DpfNrI/vs7jXzD40s4pmdpWZpfj+9u+ZWZLfca3N7Avf5/ZPM1toZl389i8ATgCe8fsMH+fb18HM5vhe1w4zG2tm1XOI6VozSwYO4t0Lp5vZdPPu571mtsrMrgz3PRURkZJBiQkREYmG8/F6KkwF3gK6WPahByOBM/F6U3QG6gKXBLVJAv4HtAXa4T1If+7/ABQOMzsdaA/M86u+Ey9x8CzQFHgeeNbMbvZrMwo4D7gWaA7MBSb5Hhoxs97AQ8DdQEOgq+81A7wP/AvYDNT0bS/4jhtsZi4/ryGX13U78KLvNTQBbgIuAIb79pcDPgNm+eJvgTcM4IBz7gDe+wrQ0xdfhyONCbgXWA+0Bm7zq38SmOGL4ynfA/KXgPNdtzNQA5higUNuEn3HDgAaA9kSEHjJr9N8f2cAzKwCcBkw1lf1L7zeOxcAJwN9+Csxk5d/4SVSmgETgNE5fJZz8wxeT5f7fNe+D7gH7zODmdUG3sP7nDXF+4z+D8jwxXaF7zzN8P4+V+dxrbrA5UAvvHvqXOBj4Bq8HjgX4X0+7/c7phLe/dkR77MxC5hsZvV8+3vg9dZ5mr8+w9vMrBYwDViDdw9fArT0vRZ/9YAb8d7rU4FtwId490Qb4DRfPHvyeF0iIlISOee0adOmTZu2iG7Ap8C//cqfA0P8yg3wHki7+tUlAL8A0/M4bxywE+iTR5tOvnPvxevuftBXfhswv3abgOeCjn0R+Dkoxh5BbZYAo3y/DwSSgbK5xPIosD6H+v7AT/l4Px1wbVCd4T003hBU3w3IBCrgPUg6oE0u522Q1/6gtgvweiykBm3+f+etwOSg4xJ913g5qL4f3gNpVb+6E33XuMJXvt13bMsw4lsWFMu1wJ9ARV95GvBqPt7zxr5r3xn0GT0IXB/G8VV8bTsF1d8KbPX93tb3t6qZyznO9cVwXFD9s8DKoPKBoPdypO+9PMqv7jVgToi4VwP3+pU3Aw8FtXke+BmI96tr7Yu1lV9Mh/xfm+8zewC4Kty/gzZt2rRpK5mbekyIiEhEmdkJeN/Aj/arHgPc5PdNeBPfz6weDM6bc2Bx0Lnq+brfrzGzPXgPslWAOmGEch7et/PNgSvxHvKe9Z23Mt5D8DdBx8wC6vq+bT8cY3Cbb/C+3Qb4ACgLbDBvRZHrzKxSqMCccy855xqH8RryciJwHPA/33CHVDNLxZvLw4CTnHNb8BIyM81ssm8YQYMjuOb7/PWeHt6Ch0MsyuXY4PqmwHLn3K7DFc65zXgPvE392mXgJYNCGQNc4zdMoi/wsXNur6/8EtDXN2zi/8ysm5lZjmcKtMwvvjRgO3BsGMc1w0tkTA76+wwDjvV9ThbjfeZWm9l4Mxvgu38KYoP/e4mXJNrknNsZVHfM4YKZHWfeUKXVvqEVqXjJqlD3V1Ngnguc62MRXtLB/2+3yfcZBLwJJvB6Db1lZjPM7HH/Xi4iIlJ6KDEhIiKRdjNQBlhqZofM7BBed/GaeF3M82MSUBvv2/U2eA/C2wicGDI3651za5xzPzrnPgD+A/zDvLkVCoVz7he8b9Zv8sX1GN5DZq3CukYeDv8//XYCEwWn4w0rSfbFeB3e5J9fA12AVebNf1EQu33vqf+2PajN3hyPzL0+lAPON59GCO/gDQXpambH473WMYd3Oucm4n2WngMq4yVZppk3H0pegifpdIT376nDbS4i8O9zGt7fZ6/vwb4zXi+XpcBVQIqZdQ3j/MGCJyF1udT5xz4O77NxL94wkubAKsK7v8KR7W/unHsUb1jLx8AZwGIze6yQriciIsWEEhMiIhIx9tekl0PJ/s36u/w1CeYq3892fscm4I1TP1yujtdr4Vnn3DTn3Cq8b2SzvvHNpwy8hEmCc24PXhf1s4PadATWOef2AT/46oLbnA1kTTzonDvonPvcOfcA3kNnBeBi3+403zUjYRNeMuTkHJIFa5xzB/1iXO6ce8E5dx7eA/wtfvERwRjz8gPQzMyqHq4wsxOB+vi9v+Fyzv2GN1zjOrxhHL/gJWP822x3zo1zzv0db16ErsBJBX4FeVuOlxiol8vfJ9MXk3POLXDODXHOtcfreXCD7xwR+/v4eoucBQx3zk1yzq3EW+kluLdETp/hH4B2QXOBtMIbthPyb+d7/S855y7B+2/F7QV8GSIiUkxpuVAREYmk84FawGvOuY3+O8xsNDDVzOo659aY2WfAy2Z2G/Ab3oSA/sMgduI9KN1iZmuB6njfdu8PM5ajfb01yuIlDO4GZviSEuANQfi3maUAM/G+ub4Dr3cGzrm1ZvYh3lCJ24ANvv2n4k0oiG+izDi8h8ldeN/SV+KvxMs64Dgza4s3meE+59w+M+sP9D+S4RzOuUwzexT4r3krXUzCS740Abo45/qZWRO8h/TJeImYE/HmNTg8PGUrXrLnPDNbAxwMGg4QrMLhVRn8ZDrnthXgJYwBBgHvmtkjeP9GeRFvQsWCLi07Fm9J0xbAW76hAwCY2b+A+Xh/G8ObSHIPXgKj0DnndprZ88ALvgf4GXg9EZoBTZ1zg8ysE15ybjre36Ix3t/v8Goc630/e5rZBLzeI4UyUaRzzvlWy7jOzBbhTVb7dA5N1wFn+ZJGB4A/8Iaj3AmM8L3GGsArePPDLM7hHIC3Eg8wGO/vuw7vnu7KX/eLiIiUEuoxISIikXQrsDA4KeEzA9gB/N1Xvglv/P4kvHH2v+D3QOr7RvlyvG+0l+PNWfEfvAkfw7HE13Yd3kPTRLyu8oe9AjwOPIL3YPQg3iR/I/3a/B3vW/i3ge/xurtf4Jw7vKzmTrxVB2YCPwL/AG51zn3l2z8BbxWCyXhJlgd89TWARmG+jlw5597ASzz0Br7FS5A8ipeEAG/yxyZ4c2Ek+37O8MV5eM6EAcD1eO//ghCXvBHvPfXfCvRQ6ZxLxXsojQPm+OL6A2+y0UN5HZuHz/C+4T+Zv1bjOCwN78F7KbAQbzjFeb7eMRHhnBuEl3C7E1iBlxAagPeZBO/zczbeZzMFeB1v0sp/+Y7fiDc8aDBe4uKDQg7xOqAi3mfnI2A82Vc9eRRvLpM1eJ/hY31zgZyH9x5+h3fffkvg/ZWTNLweT2/iTbI5BS/50vfIX4qIiBQn5vflgYiIiIiIiIhIVKnHhIiIiIiIiIjEjBITIiIiIkfIzG72XwY0h62gk7SKiIiUeBrKISIiInKEzKwyea8Qsy7MZU5FRERKHSUmRERERERERCRmitVyobt371YWRURERERERKQIqlKlihXkOM0xISIiIiIiIiIxE7XEhJndbWYrzewHM7snh/1mZsPNbI2ZLTezv0UrNhERERERERGJjagkJszsVOAWoBVwOnCBmTUIanY+0NC33Qq8Eo3YRIqTlJSUWIcgUizoXhEJTfeJSGi6T0SiI1o9Jk4BFjrn9jnnDgGzgN5BbXoBY51nAVDVzGpGKT4RERERERERiYFoTX65EnjazKoD+4EewLdBbU4ANvmVN/vqtuR0QmUvpbTSZ18kPLpXRELTfSISmu4Tkbw1bNjwiM8RlcSEc+5HM/sX8AWwF1gGHNFa3oXx4kWKm5SUFH32RcKge0UkNN0nIqHpPin+nHOkpqaSmZkZ61BKhLi4OJKSkjAr0OIbuYracqHOuZHASAAzG4rXI8LfL0Atv/KJvjoRERERERGRfEtNTaVcuXIkJCTEOpQSIS0tjdTUVCpVqlSo543mqhzH+H7Wxptf4p2gJp8BfX2rc7QBdjvnchzGISIiIiIiIhJKZmamkhKFKCEhISK9T6LWYwIY75tjIh3o55zbZWa3AzjnXgWm4M09sQbYB9wYxdhEREREREREJAaiOZTjrBzqXvX73QH9wj3f2rVr89xfq1YtZcZEREREREQkZnbs2MFFF10EwLZt2yhTpgzVq1cHYMaMGWE/s7711lt069aNY489Ntu+W2+9lQULFlC5cmUAKlWqxNSpUwvpFURHNHtMFKozzzwzz/2VK1dm3LhxnHVWtnyIiIiIiIiISMRVq1aNOXPmAPDMM8+QlJTEgAED8n2ecePGcfrpp+eYmAAYOnQoF1xwQa7HHzp0iPj4+FzL4R4XKcU2MRHKnj17GDp0aLHLFImIiIiIiEhkVK1atVDPt2vXrgIf+8477zBixAjS0tJo3bo1zz//PJmZmdx5552sXLkS5xzXX389xxxzDCtWrOCmm24iMTEx7J4WQ4YMYdOmTaxfv546derQoUMHPv/8c/bs2UNcXBwTJkzg0Ucf5euvv8bMePDBB+nVqxczZ87k+eefJykpiXXr1rFo0aICv8ZwldjEBMCKFStwzhX6UiYiIiIiIiIiBbVq1SomTZrEF198QXx8PHfffTfjx4+nXr167Nixg3nz5gFe4qNq1aq8/vrrPPfcczRr1izH8z3yyCM8++yzADRt2pTXXnsN8Ja8nTJlComJiYwdO5bly5czZ84cqlatyscff0xycjJz5sxh+/btdO7cmXbt2gGwbNkyFixYQK1atXK8XmErtomJ+vXr51i/YcMGMjIyAG9pmC1btnD88cdHMzQRERERERGRXM2cOZOlS5fSqVMnAA4cOMAJJ5xAly5dSElJ4YEHHuC8886jc+fOYZ0vt6EcPXr0IDExMavcuXPnrF4j8+fP59JLL6VMmTIce+yxtGnThqVLl5KQkEDLli2jlpSAYpyYWLJkSY71nTt3DtiXnJysxISIiIiIiIgUGc45+vTpw6OPPppt39y5c5k+fTpvvPEGn332GcOGDSvwdSpUqJBnOdzjIi0uqleLgpNPPjmgnJycHKNIREREREREpCjZtWtXoW4F1alTJyZMmMAff/wBeKt3bNq0ie3bt+Oc4+KLL+aRRx7h+++/ByApKYnU1NRCeQ8Oa9euHR9//DGZmZls27aNhQsXcsYZZxTqNcJVbHtM5CY4MZGSkhKjSERERERERESya9q0adZkk5mZmZQtW5YXX3yRuLg4BgwYkDVX4j//+U8A+vTpw1133ZXr5Jf+c0wAzJo1K2QMvXr1YvHixbRv3x4z4+mnn+boo48u3BcaJnPOxeTCBbF79+6QwU6cOJHrrrsuq9yxY0c+/fTTiMYlEi0pKSk0bNgw1mGIFHm6V0RC030iEpruk+Jv9+7dVKlSJdZhlCh5vadVqlQp0MoTGsohIiIiIiIiIjFT4hIT9evXJz7+rxEqW7ZsYc+ePTGMSERERERERERyU+ISE2XLlqVevXoBdWvWrIlRNCIiIiIiIiKSlxKXmACyjQPTcA4RERERERGRoqlEJia0MoeIiIiIiIjExcWRlpYW6zBKjLS0NOLiCj+NUOKWC4XsiYnVq1fHKBIRERERERGJlaSkJFJTU9m/f3+sQykR4uLiSEpKKvTzlorEhHpMiIiIiIiIlD5mRqVKlWIdhoRQIodyNGjQIKD8888/k56eHqNoRERERERERCQ3JTIxUbVqVY499tiscnp6Ohs2bIhhRCIiIiIiIiKSkxKZmIDsK3NongkRERERERGRoqfEJiYaNWoUUNY8EyIiIiIiIiJFT4lNTAT3mEhOTo5RJCIiIiIiIiKSmxKbmNDKHCIiIiIiIiJFX4lNTOQ0x4RzLkbRiIiIiIiIiEhOSmxi4oQTTqBixYpZ5T179rBt27YYRiQiIiIiIiIiwUpsYiIuLo4GDRoE1GmeCREREREREZGipcQmJkDzTIiIiIiIiIgUdSU6MaGVOURERERERESKthKdmGjUqFFAWYkJERERERERkaKlRCcm1GNCREREREREpGiLWmLCzAaa2Q9mttLM3jWzxKD9N5jZ72a2zLf9/UivWb9+feLi/nqJmzdvZu/evUd6WhEREREREREpJFFJTJjZCcBdQAvn3KlAGeCqHJq+75xr7ttGHOl1ExMTqVOnTkDdmjVrjvS0IiIiIiIiIlJIojmUIx4ob2bxQAXg12hcNHhlDg3nEBERERERESk64qNxEefcL2b2ArAR2A984Zz7Ioeml5rZ2UAyMNA5tym3c4a79OfRRx8dUF6wYAHNmzcPN3SRIkfL3oqER/eKSGi6T0RC030ikrfguR0LIiqJCTM7CugF1AN2AR+a2bXOubf9mk0E3nXOHTSz24AxQOfczhnui2/VqhVvv/3XZf74449CeeNEYiElJUWfX5Ew6F4RCU33iUhouk9EoiNaQznOBdY55353zqUDHwPt/Bs45/5wzh30FUcAZxbGhTWUQ0RERERERKToilZiYiPQxswqmJkBXYAf/RuYWU2/4kXB+wsqODGxdu1aMjIyCuPUIiIiIiIiInKEopKYcM4tBD4ClgArfNd93cyeNLOLfM3u8i0n+j3eCh43FMa1q1WrRo0aNbLKBw8eZOPGjYVxahERERERERE5QlGZYwLAOfcE8ERQ9eN++x8GHo7EtRs2bMj27duzysnJydSrVy8SlxIRERERERGRfIjmcqExo3kmRERERERERIqmUpmY0JI/IiIiIiIiIkVDqUxMqMeEiIiIiIiISNFQKhITwWsPKzEhIiIiIiIiUjSUisRErVq1SExMzCrv2LGDP/74I4YRiYiIiIiIiAiUksREmTJlaNCgQUCdek2IiIiIiIiIxF6pSEyA5pkQERERERERKYpKTWJC80yIiIiIiIiIFD2lJjGhJUNFREREREREip5Sm5hQjwkRERERERGR2Cs1iYmTTjoJM8sqb9iwgf3798cwIhEREREREREpNYmJChUqUKtWrayyc461a9fGMCIRERERERERyTMxYWbxZtbbzEaa2bdmtsb3c6SZXWZm8dEKtDBongkRERERERGRoiXXxISZ3Q78DNwGrAWeBm73/VwL3AL87GtXLGieCREREREREZGiJa8eDw2AVs65rTns+wQYamY1gXsjElkEqMeEiIiIiIiISNGSa2LCOXdfqIOdc1uAkO2KioYNGwaUV69eHaNIRERERERERARCzzFxeVC5UVD5nkgEFSnBPSbWrFlDZmZmjKIRERERERERkVCrcowMKs8PKj9ZiLFEXI0aNahatWpWef/+/WzevDmGEYmIiIiIiIiUbqESE5bPcpFmZjRqFNDpQ/NMiIiIiIiIiMRQqMSEy2e5yNM8EyIiIiIiIiJFR16rcgBgZobXM8JyKhc3WplDREREREREpOgIlZhIAg75lc2vbJSAHhPJyckxikREREREREREQiUm6kUliijS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IiIiImEIa44JoCLwe1DdH0D5wg2n6KhZsyatW7dm4cKFWXXt27dnz549YR0/efJk7rjjjkiFJyIiIiIiIlIihNtj4nNgnJk1MrPyZtYYGANMi1xosXfBBRcElPNKSpx22mkB5fnz57Njx46IxCUiIiIiIiJSUoSbmOgP/AksB1KBZcBeYECE4ioSgueZCHbcccdx1113MX/+fGbPns0pp5yStS8jI4Np00p03kZERERERETkiIVMTJhZHNACuAVv6EZNoIJzrq9zbleE44upunXr0q5du4C6cuXKcckll/Dhhx+ycuVKnnzyyayERPw+sY8AACAASURBVPC8FFOmTIlarCIiIiIiIiLFUcg5JpxzmWb2qXOukq9qW4RjKlJeeeUVnnrqKVJTU+nWrRu9e/ematWqObbt0aMHL7zwQlZ5xowZ7N+/n/LlS+xUHCIiIiIiIiJHJNzJL78xszbOuQURjaYIqlOnDiNGjAirbfPmzalZsyZbtmwBYO/evcyaNYvu3btHMkQRERERERGRYivcOSY2AFPNbLSZPWVmTx7eIhlccRMXF0ePHj0C6jScQ0RERERERCR34SYmygMTAAecCNTybSdGKK5iKzgxMXXqVDIyMmIUjYiIiIiIiEjRFnIoh2/yy7eAuc65gwW5iJk1At73q6oPPO6c+49fm07Ap8A6X9XHzrli1yPjrLPOonLlyllLi/7+++98++23tG7dOsaRiYiIiIiIiBQ9IXtMOOcygU8LmpTwnWO1c665c645cCawD/gkh6azD7crjkkJgISEBM4999yAOg3nEBEREREREclZuEM5vjGzNoV0zS7AWufchkI6X5ETPJxj8uTJMYpEREREREREpGgLd1WOw5NffgpswptrAgDn3OP5vOZVwLu57GtrZt8DvwL3Oed+yOe5i4SuXbtStmxZ0tPTAVizZg3JycmcfPLJMY5MREREREREpGgx51zoRmZv5rbPOXdj2BczS8BLOjR1zv0WtK8ykOmcSzWzHsAw51xD/za7d+/OCjYlJSXcy8ZE//79WbhwYUD5+uuvj2FEIiIiIiIiIoWrYcO/HturVKliBTlHWImJwmJmvYB+zrluYbRdD7Rwzm0/XOefmCjq3njjDe6///6scsuWLfnyyy9jGJGUBCkpKQE3vojkTPeKSGi6T0RC030ikj8FTUzkOceEmV0eVG4UVL4nn9e7mlyGcZjZcWZmvt9b+WL7I5/nLzLOP//8gPK3337Lb7/9lktrERERERERkdIp1OSXI4PK84PKYa+cYWYVga7Ax351t5vZ7b7iZcBK3xwTw4GrXDS7cxSyE088kebNm2eVnXN8/vnnMYxIREREREREpOgJlZgI7oYRqpwr59xe51x159xuv7pXnXOv+n5/yTnX1Dl3unOujXNuXrjnLqq0OkfxkZmZyZo1a9i/f3+sQxERERERESlVQiUmgnsshCqLn549ewaUZ82axZ9//hmjaCQ3u3fv5uyzz6ZFixY0bNiQfv36MXfuXDIzM2MdmoiIiIiISIkXKjGBeeLMrExOZcldkyZNqFOnTlb54MGDzJgxI4YRSU6GDx/OypUrAUhNTWXcuHH07NmTM844g2effZb169dH9Pp//PEHqampEb2GiIiIiIhIURUqMZEEHALSgTSgql85HagY0eiKOTPTcI4ibs+ePbzxxhs57tuwYQPPPvsszZs354ILLuCdd94p1ATCrl27uO2222jYsCH169dnwoQJhXZuERERERGR4iJUYqIeUN9vq5fD75KH4OEcX3zxBenp6TGKRoKNGTOGPXv2hGw3Z84c7rzzTho1asQdd9zBggULjui6c+bMoUOHDrz//vtkZmaSlpbGwIEDOXDgwBGdV0REREREpLjJMzHhnNsQaotWoMVVmzZtOOqoo7LKu3btYt68Yj+vZ4lw8OBBXn755YC6K664gksvvZRy5crleMzevXt599136d69O71792bZsmX5vuYTTzzBhRdeyObNmwP27dy5Uz1qRERERESk1Ak5x4Qcmfj4eLp37x5QN2XKlBhFI/7ef/99tm7dmlWuUKECzz77LCNHjmT16tW8+OKLtGzZMtfjZ8yYQadOnbj++utJTk4Oeb2ffvqJc889l2HDhpHbSrhjx47N/wsREREREREpxpSYiILgeSamTJmS64OpREdGRgbDhw8PqOvbty/VqlUDoGrVqtx44418+eWXLFq0iIEDB1KzZs0cz/Xpp5/Spk0b+vfvz6ZNm7Ltd87x2muv0alTJ1asWJFnXLNmzYr4ZJsiIiIiIiJFiRITUdC5c2cSExOzyps2bQr5gCqRNXnyZNasWZNVjo+Pp1+/fjm2Pfnkk3niiSdYuXIl48ePp3379tnaZGZm8vbbb3PmmWfy8MMPs337dgC2bNnCZZddxoMPPpht/ojjjz+eTz/9NFuvjLfffvtIX56IiIiIiEixocREFFSsWJFOnToF1Gk4R+w45/jPf/4TUHfZZZdRq1atPI8rU6YMXbp0YdKkSYwfP57TTz89W5u0tDReeeUVmjdvzv3330/79u356quvsrW75JJLmDdvHh07duS6664L2Ddu3DgOHTpUgFcmIiIiIiJS/OSamDCz2Wb2TagtmsEWZ1o2tOiYPXs2S5YsCai7++67wz7ezOjSpQtff/01o0ePpmHDhtnapKam8sYbb7Bjx46A+sqVK/Paa68xatQoqlatCkDv3r1JSkrKarNlyxamT5+en5ckIiIiIiJSbOXVY2IEMNK3zcRbGnQ28DbwDd5yoV9HOL4So3v37phZVnnFihVs3LgxhhGVXsG9Jbp3784pp5yS7/PExcVx8cUXM3/+fIYPH84JJ5yQZ/t27doxZ84crrzyyoDPQlJSEr179w5oq0kwRURERESktMg1MeGcG3N4A7oB5znnBjnnXnfOPQqc59skDMcccwytW7cOqJs6dWqMoim9vv/+e2bMmBFQN3DgwCM6Z3x8PH379uW7777j6aefpnr16gH7y5Yty+DBg5k4cSK1a9fO8Rx9+/YNKE+bNi1gxRAREREREZGSKtw5Jk4B1gbVrQMaF244JZuGc8TesGHDAspt27bNljAqqMTERPr168eyZct4+OGHadKkCeeeey5ffvkl99xzD2XKlMn12DPPPJMmTZpklTMyMnjnnXcKJS4REREREZGiLNzExCxgtJk1NLPyZnYy3hCP2ZELreQJTkzMnj2bCy+8kFdffVXDOqJg3bp1TJgwIaDunnvuKfTrVKpUiQcffJB58+bx0Ucf0bx585DHmFm2STDfeustMjMzCz0+ERERERGRoiTcxMQNvp8/AHuBFYABN0YgphKrQYMGNGrUKKvsnGP27Nk89NBDNGvWjA4dOjB06FC+//57nHMxjLRk+u9//xvwoN+kSRO6desWw4gCXXnllSQkJGSV161bx5w5c2IYkYiIiIiISOSFlZhwzu1wzl0FJAI1gfLOuaudc9sjGl0JdO211+a6b+XKlTz33HN07NiR0047jfvvv5+ZM2eSkZERxQhLpm3btjFu3LiAurvvvjtgEspYq1atGhdeeGFA3VtvvRXRa+qzJSIiIiIisRZujwnMrDEwCHjMOZdpZo3MrFnkQiuZ7rjjDoYMGULjxnlPz7F582beeOMNLr74Yrp27cq+ffuiFGHJ9Oqrr3Lw4MGs8oknnphtJYyiIHgSzM8++4ydO3cW+nW2bNlCp06dqFWrFrfeeiu//fbbEZ8zOTmZESNGMGPGDH1eRUREREQkbGElJszscrz5JE4ADj85VQL+L0JxlVjx8fH079+fBQsW8N133/HUU0/Rtm1b4uJy/1MsWbKE9957L4pRlix79uxhxIgRAXUDBgygbNmyMYood2eddRZ169bNKh88eJAPPvig0K/z2GOPsWzZMvbt28cHH3xAq1atGDt2bIHmtNi+fTsDBw6kTZs23HffffTu3Zu6detywQUX8Pzzz7N48WIOHTpU6K9BRERERERKhnB7TDwJnOucux043Pf7e+D0iERVSpx00kkMGDCAqVOnkpyczEsvvUSPHj0oX758trazZ2ue0YIaPXo0e/bsySpXq1YtzyE1sRQXF5dtEswxY8YU6pwjf/75Z7YVYXbv3s1dd93FBRdcQEpKSljnSUtL46WXXuJvf/sbb775ZkBSIy0tjTlz5vD000/TtWtX6tevz9VXX81rr73GTz/9pDlUREREREQkS7iJiWOA5b7fnd9PPV0Ukho1anDttdfyzjvvsHbtWl588cWA/QsWLNDDXAEcPHiQ//3vfwF1t912GxUrVoxRRKFdc801AT1oVq1axdKlSwvt/J9//jn79+/Pcd+8efNo3749zz33HGlpaTm2cc4xbdo02rVrx6OPPhqQ9MnNnj17mDp1Kg8++CBt2rThlFNOYdCgQfz5559H9FpERERERKT4Czcx8R1wXVDdVcCiwg1HACpUqECfPn0Cek5s2bKFDRs2xDCq4un9999n69atWeWKFStyyy23xDCi0GrWrJlttZCxY8cW2vnHjx+f5/60tDSGDh3K2WefzcKFCwP2rV69mssuu4wrr7ySNWvWZDu2Tp06AUNRcrN161ZefvllzjvvPC2VKyIiIiJSyoWbmLgLGGJms4CKZjYNeAoYGLHISrmEhARatGgRUDdv3rwYRVM8ZWRkMHz48IC6vn37Uq1atRhFFL7gSTA/+ugjUlNTj/i8u3bt4quvvgqoe/vttzn33HOztf3pp5/o3r079957Lxs2bODBBx+kXbt22Y4HqFy5Mk899RSLFy9m2bJlLFu2jOHDh9O7d29q1KiRazyrVq2ic+fOLFiw4Ihfm4iIiIiIFE/hLhf6E9AYeBl4FHgTOM05F95gdCmQNm3aBJT18BYe5xxTp06lc+fOAd/qx8fH069fvxhGFr5u3bpx3HHHZZVTU1OZMGHCEZ934sSJpKenZ5UbNmxIz549+fDDDxkxYkS2JIJzjpEjR3L66afz2muvZVte1My4/vrr+e677xgwYAAJCQkA1K1bl759+zJq1CiSk5OZPXs2Q4YMoWvXrtmG0Wzfvp0LL7ww23KuIiIiIiJSOoRMTJhZGTNbC2Q45z5wzj3vnHvPOXfkX99Kntq1axdQnj9/fowiKR6cc0yZMoVOnTpx9dVX8/333wfsv/zyyznxxBNjFF3+xMfHc8011wTUvfXWW0d83o8//jig3Lt3b8wMM+Oyyy5j8eLFYU8M2q5dO2bOnMmwYcM4+uijc20XFxfHaaedRv/+/fnwww9JTk7moosuCmiTnp5Ov379ePTRR7MlP0REREREpGQLmZhwzmXgrcSRfakIiaiWLVtSpkyZrHJKSgq///57DCMqmP379/PCCy8waNAgxo8fz2+//Vao53fOMXnyZDp27Mg111yTLSEBcPTRR/Pggw8W6nUjLThBsHDhQtauXVvg8/3+++/MmjUroK53794B5aOOOoqXXnqJzz77jPr16+d4ntq1azNmzBgmT57M6afnf2GeihUrMnr0aO6///5s+1566SWuvvrqsCbUFBERERGRkiHcOSb+A7xvZh3N7CQzq394i2RwpV1SUhLNmjULqCtuvSYyMzO54oorGDJkCC+//DI333wzjRo1onXr1tx3331MmDCB7du3F+jczjkmTZpEx44d6dOnD8uXL8+x3YUXXsjUqVPDmpSxKKlfvz5nnXVWQN1nn31W4PN9+umnAUt6nnrqqTRq1CjHtmeffTZz587l3nvvJT4+HvASCo899hiLFi2iV69emFmBY4mLi2PQoEGMGjWKxMTEgH1ffPEF3bp1Y/369QU+v4iIiIiIFB/xYbZ7yfeza1C9A8ogEdOmTZuApSIXLFiQrRt8UTZq1Chmz56drX716tWsXr2aESNGANCkSRM6dOjAWWedRfPmzcnIyGDfvn3s37+fvXv3sn//fvbv359Vl5qaykcffcSKFStyvfZFF13EAw88wKmnnhqx1xdpffv2DXj/Jk+ezMGDBylXrly+zxW8Gsell16aZ/vy5cvz2GOPcfPNN7N8+XJatWpV6BOH9u7dm3r16nHNNdewZcuWrPqffvqJzp07M2bMmGzJGRERERERKVnMORfrGMK2e/fu4hNsIfnss88CVmg444wz+Prrr2MYUfg2b95M27Zt+fPPP6N63V69evHAAw/QtGnTqF43Eg4cOEDjxo3ZtWtXVt2bb77JJZdckq/z/PLLL9nej2XLlhWZXiS//vorffr0CUjCgTfXxvPPP88NN9xwRD00pPRJSUmhYcOGsQ5DpEjTfSISmu4TkfypUqVKgf7RHu5QDomRtm3bBpSXL19eKMtGRppzjnvvvTcgKZGUlMSZZ54ZMG9GYTEzLr74YubOncuYMWNKRFICIDExkSuuuCKgbsyYMfk+zyeffBJQbtGiRZFJSgAcf/zxTJ48OducF4cOHWLgwIGcc845fPLJJxw6dChGEYqIiIiISKSElZgws3gzu8vMxpvZLDP75vAW5vGNzGyZ37bHzO4JamNmNtzM1pjZcjP7W0FeUElz9NFHB2RpMzIy+Pbbb2MYUXg++eQTpk2bFlD3xBNP8NVXX7Fu3To++OADBgwYQPPmzY/om3Az45JLLmHu3LmMHj26xCQk/Pn3mAGYOXMmc+fOzdc5clqNo6ipUKECI0eO5JFHHsm2b9myZdx44420aNGCESNGsG/fvhhEKCIiIiIikRDWUA4z+y/QGXgdeBoYBNwBvOecG5yvC5qVAX4BWjvnNvjV9wAGAD2A1sAw51xr/2NL41AOgAEDBgQsFfnAAw/k+PBWVOzYsYNWrVoFTGrZunVrpk6dSlxc9lzYrl27mDdvHrNnz2bu3Lls3bqVxMREKlSoQPny5alQoULW74fL5cuXp3r16vTs2ZPGjRtH8+XFxHnnncfChQuzys2aNePrr78Oq/fJunXrOOOMM7LKZsYPP/zA8ccfH5FYC8Onn37KHXfckWsConr16tx6663ccssthT7vhZQM6norEpruE5HQdJ+I5E9Bh3KEO/llb6Ctc26jmf3TOTfMzKYBrwGD83nNLsBa/6SETy9grPMyJQvMrKqZ1XTObcl+itKlbdu2AYmJor4yx6BBgwKSEgkJCQwfPjzHpARA1apV6dGjBz169IhWiMXO4MGDOf/887PKy5cv59133822pGhOgntLtGvXrkgnJcCbJ+Tkk09myJAhTJ48Odv+P/74g2eeeYZhw4Zx7bXX0q9fP+rUqZPjuQ4dOkRqair79u1j79691KxZk6SkpEi/BBERERERCVO4PSZ2AtWcc87MtgAnOef2mdke51zlfF3QbBSwxDn3UlD9JOBZ59wcX/kr4EHnXNa4Bf8eEykpKfm5bLG2efPmgMkOy5Urx9dff03ZsmVjGFXOFi5cSP/+/QPqbrvtNv7+97/HKKKS4+GHH2b69OlZ5erVqzN+/HgqVqyY53FXX301a9asySo/9NBDIVfkKErWr1/P22+/zZQpU0hPT8+xTZkyZWjatCmHDh3KWr3lwIED7Nu3L9sx8fHx3HfffcXqPRARERERKar8exUVtMdEuImJecA9zrlFZjYR+BHYA/Rxzp0S9sXMEoBfgabOud+C9uUrMVGaOOc45ZRT2Lp1a1bd9OnTadGiRQyjym7v3r20bduWjRs3ZtU1adKEmTNnkpCQEMPISoaNGzfSokUL0tLSsur+8Y9/8Pjjj+d6zI8//hgwgWqZMmVYvXo1NWrUiGiskbBlyxZee+01Ro0axZ49e47oXGXLluWHH37gmGOOKaTopKhR11uR0HSfiISm+0QkfyK9KsfdwOHp8P8B/A24ELg1n9c7H6+3xG857PsFqOVXPtFXV+qZWbbVOYricI6hQ4cGJCXMjOHDhyspUUhq166dbejGyy+/zPr163M9JngYR6dOnYplUgKgZs2aDB48mJUrV/LUU09Rs2bNAp8rPT2dcePGFWJ0IiIiIiJSUGElJpxzi51zS3y/pzjnznXOtXbOzc7n9a4G3s1l32dAX9/qHG2A3Zpf4i/BiYl58+bFKJKcLVmyhFdeeSWg7rbbbityvTqKu+uvv57jjjsuq3zw4EEGDx6cY1vnXLFYjSO/KleuzIABA/j+++95+eWXadSoUZ7t4+LiqFSpElWqVAmof/PNN8nIyIhkqCIiIiIiEoZwh3J0zm2fc25GWBcyqwhsBOo753b76m73neNV89aMfAnoDuwDbvQfxgGldygHwIoVKzjrrLOyytWqVWPNmjW5TigZTenp6XTs2JFVq1Zl1dWqVYv58+drksFClpKSwuLFi7nzzjsD6idPnkz79u0D6pYtW0anTp2yygkJCSQnJ1O1atVohBo1mZmZrFy5kh07dpCUlESFChWoWLFi1paYmIiZsXPnTho3bszBgwezjv3www/p2rVrDKOXSFHXW5HQdJ+IhKb7RCR/Ir0qx8ig8tFAArAZqB/OCZxze4HqQXWv+v3ugH5hxlPqNGnShMqVK2eNrd+xYwfJyclFYqnMYcOGBSQlAP7zn/8oKREhV111FW+88QZLly7Nqnv44YezLR8a3FuiS5cuJS4pAV6PiGbNmoVsd9RRR3HJJZfw3nvvZdWNGjVKiQkRERERkRgLdyhHPf8NqAI8jdfDQaKgTJkytG7dOqCuKMwzkZyczHPPPRdQd+WVV9KlS5cYRVTyxcXF8cwzzwTUHV4+9LDMzMxsiQmtQgE33XRTQHnatGls3rw5RtGIiIiIiAiEP/llAOdcBl5i4oHCDUfyUtQmwMzMzOTuu+8OWCWievXqDB06NIZRlQ5t2rTJNl/EU089xZ9//gnA4sWLAx64y5cvT/fu3aMaY1HUsmVLTj311KxyZmYmY8aMiWFEIiIiIiJyJBMUdAUyCysQCa2oJSZGjx6dLYZ//etfVK9ePZcjpDANHjyYxMTErPJvv/3Giy++CMD48eMD2nbv3l1Da/BWignuNfHWW2+Rnp4eo4hERERERCSsxISZbTKzjX7bduBD4KHIhif+zjjjjIClNzdt2hSzbuh79+7lySefDKjr1q2bhgtEUe3atenfv39A3csvv8zPP//MhAkTAupLwmocheXyyy8PSNJs3bqVqVOnxjAiEREREZHSLdweE9cC1/lt3YHjnXNjIxWYZJeYmMiZZ54ZUBerXhMff/wxu3btyionJSXx73//G29xFYmWe+65J9vyoVdeeSXbtm3LqqtUqZImePRTqVIlrrjiioC6UaNGxSgaEREREREJd/LLWUHbt865PZEOTrILHs6xYMGCmMTx5ptvBpRvvvlmatWqFZNYSrOkpCQef/zxgLqUlJSAcs+ePQOGfAjceOONAeWZM2eydu3aGEUjIiIiIlK6hTuU4y0zGxtqi3Sw4k166C8WPSaWLVvGkiVLsspmlu1BT6Lnqquu4owzzsh1v4bXZHfaaafRsmXLgLrRo0fHJhgRERERkVIu3KEcu4CLgTLAZt9xvXz1a/02ibBWrVoFDJdYtWoVO3fujGoMwb0lunTpQt26daMag/wlp+VDDzvqqKPo1KlTdAMqJoKTaePGjePAgQMxikZEREREpPQKNzFxMtDTOdfHOfeIc+5aoCfQyDn3z8Nb5MKUw6pWrUrTpk0D6qI5nGP37t189NFHAXXqLRF7OS0fCtCrVy/Kli0bg4iKvksuuYSqVatmlXfs2MGnn34aw4hEREREREqncBMTbYDgp9+FQNsc2kqExXKeiQ8//JC9e/dmlY8//njOO++8qF1fche8fChoNY68lC9fnmuuuSagLrg3kIiIiIiIRF64iYmlwFAzKw/g+/k0sCxSgUnughMT0ZpnwjmXbfWCvn37Eh8fH5XrS95q167N4MGDs8odOnSgQ4cOsQuoGAju7bNgwQJ++OGHGEUjIiIiIlI6hZuYuAFoD+w2s9+A3UAHoG+E4pI8BCcmli5dyv79+yN+3UWLFrFq1aqscpkyZejbVx+BouT2229n+vTpjBs3jvHjxxMXF+4tXjo1bNiQs88+O6CuJE2CmZaWxhdffMHKlStjHYqIiIiISK7CXS50vXOuHXAScBHQwDnXzjm3PpLBSc5q1qwZMNlkeno63333XcSvG9xbonv37hx//PERv67kT4sWLejZsyflypWLdSjFwk033RRQfu+990hNTY1RNIVn7969nH/++VxxxRWcffbZGqYiIiIiIkVWvr5Odc5tAioDl5qZ5peIoWgP59ixYwcTJkwIqAt+oBMpjnr06MExxxyTVf7zzz8ZP358yOPS09P55JNPePHFF1m/fn0EIyyYQYMGZSUsMzMzeeCBB1i2TKPvJPoyMzNZunQpv/zyS6xDERERkSIqz8SEmb1rZn/3Kz8ATAKuAaab2XURjk9yEe3ExDvvvMPBgwezynXq1OGcc86J6DVFoiEhIYHrrgv8T9nIkSNxzuXYPiMjg/fee4+WLVty44038s9//pPu3buzffv2aIQblsmTJ2cbkpKens4tt9wSMHmtSKTt27ePiy++mHPOOYcWLVpo5RsRERHJUageE+2BzwDMLA64H7jGOdcSuAy4L7LhSW6CExOLFi3i0KFDEbmWcy5bN/Abb7xR8xdIiXH99ddjZlnl5cuXs2TJkoA2mZmZTJgwgXbt2nH77bcH9JLYunUrr776arTCzdPWrVsZMGBAjvtSUlIYNGhQlCOS0so5x8CBA/nmm28A2L9/P3fccQc//fRTjCMTERGRoibUk2VV59w23+9nAInA4f78nwN1IhWY5K1BgwbUqFEjq5yamhqxCe6++eYb1q5dm1UuW7Ysffr0ici1RGKhdu3adOvWLaDu8Jwqzjk+//xzOnbsyA033MDq1atzPMeIESNiPjdFZmYm/fr1Y8eOHbm2GT16NBMnToxiVFJajRo1ivfffz+gbt++fdxwww3quSMiIiIBQiUmtptZXd/v5wDznXMZvnJFICOngyTyzIw2bdoE1EVqOEdwb4mLLrqIo48+OiLXEomV4KVDP/74YyZOnEjXrl256qqrWLFiRZ7H79q1izFjxkQyxJBef/11vvrqq4C6++67jwYNGgTU3XXXXfz666/RDE1KmUWLFvHQQw/luO+nn37ivvvU4VJERET+EioxMQKYbGb/BzwE+D+hng38GKnAJLRozDPx22+/MWnSpIC64Ac4kZKga9eunHjiiVnl/fv3c9111/Htt99maxsXF8fVV1+d7V743//+R1paWsRjzcmqVat44oknhlY3LQAAIABJREFUAuratWvHww8/zIgRIyhbtmxW/c6dO7n99tvJzPx/9u48rsbsjwP453STyhJRQn72pSxZoizRJCJkKbJvY0/J2JIke/YwWRIq2XeSpYwWEYax1phsM/ZlKJK0nd8fcaene+su7fq+X69ees5znvOc6Hju/d5zviejsLtJSoE3b95g1KhRSE1NzbHO3r17ERgYWIi9IoQQQkhxlmtggnO+DMBKAGUATOOc781yWgfAmgLsG5GhQ4cOguPo6OgcE/YpKzAwUJC7olGjRujYsWO+3oOQ4kAkEmH06NEy6w0YMADR0dHYvHkz5s2bBw0NDfG558+f49ChQwXYS+mSk5Mxfvx4QYLaihUrYuvWrRCJRGjZsiXc3NwE10RERGDjxo2F3VXyg0tLS8PYsWPx8uVLQfmmTZvQqFEjQdmsWbMQExNTmN0jhBBCSDHF8vuNbEFKSEgoOZ0tBGlpaahdu7Zgra6Dg4P4jdL3f1vOufhLJBLB1NQUlpaWgmR/0qSnp6Nly5Z4+vSpuGz58uWYPHlyAfw0RB5xcXFo2LBhUXfjh/Xq1Ss0a9ZMaiJZa2truLq6olmzZoLyWbNmYdu2beJjAwMDREVFFWpyWFdXV2zatElQ5uvrCzs7O/FxRkYG+vXrJ05ECACqqqoICQlBq1atCq2vhYXGStGYP3++RMDLyckJixYtQmxsLCwsLPDlyxfxuYYNG+LChQsoX758YXeVgMYJIfKgcUKIYrS0tHJ/k5kDCkyUcP369UNYWJjC15mZmWHDhg2oW7dujnXOnTuHQYMGiY/V1dXx559/olKlSsp0leQDejgWPCcnJwQEBIiPLS0t4erqitatW0ut/+TJE7Rp0wbp6f+l3Nm3bx969OhR4H0FgAsXLqB///6CskGDBsHHx0ei7osXL9CxY0d8+PBBXFa/fn2Eh4f/cG8MaawUvuPHj2PUqFGCsk6dOuHYsWNQVVUFkLn19JQpUwR1Bg4cCB8fH5nBcpL/aJwQIhuNE0IUo2xggvZ7LOGy55mQV2RkJDp06ICNGzcK3lBl9X1Xgu8GDBhAQQnyw/P09MS8efMwfvx4nD59GocOHcoxKAEAderUkQgMrF+/vqC7CQB4//69xJu8WrVqYdWqVVLr16hRAxs2bBCUPXz4EHPnzi2wPpLS4f79+3BwcBCU1ahRAzt37hQHJQBg6NChErs6HTx4sEASxyYkJGDBggWYNm0aHj9+nO/tE0IIIST/0IyJEu7ly5cwMTHBx48flW6jdevW2LhxI5o2bSoue/r0KYyMjATJ8UJDQ2FsbJyn/pK8oah98XT79m107txZUHb27FmYmJgU2D055xg5cqRg608VFRUEBQVJ5J/JztnZGX5+foIyf39/9O3btyC6WiRorBSeT58+oWvXrvjrr7/EZWXKlEFwcDDatm0rUT8pKQmWlpaC/BJly5ZFSEgIWrRokS99+vz5M6ytrXHr1i0AgI6ODqKjo1GlSpV8af9HQeOEENlonBCiGGVnTKjKrkKKs+rVqyMiIgJBQUFITEwUT4VljEl8zxhDeHg4wsPDBW3cuHEDXbp0wS+//IIZM2agbNmyCAgIEAQlmjdvjjZt2hTeD0ZICdKiRQtYWFjgt99+E5d5eXlh7969uVyVN4GBgYKgBAD88ssvMoMSALB06VJERUUhLi5OXDZt2jS0adNGsDMJKb2Sk5OhpqYmM1cK5xwODg6CoASQOfNIWlACADQ1NeHn54effvpJnCPp69evGD16NMLCwlCxYsU89T0jIwOTJk0SByUA4O3bt/Dw8KCEr4QQQkgxJdeMCcaYNoCZAFoCECxE5px3lnpRAaAZE3nHOcfu3bsxb948JCQkSJxv0qQJ1q1bhzFjxuDVq1fi8u9lpGhR1L74Cg8Pl5hxEB0djSZNmuT7vR4+fIjOnTsLEt+2bt0aZ8+eFWwLmptbt27B0tJSsKVjp06dcPz4cYhEonzvc2GjsaKcT58+YdSoUfjtt9+gqamJxo0bw8DAAAYGBjA0NISBgQGqV68uDnxv3LgR8+fPF7QxePBgbN68WWbOiIMHD2L8+PGCsn79+mHnzp15yjfh4eEBLy8vqecKeiZTSUPjhBDZaJwQopgCTX7JGDsDoCyAAwCSsp7jnOf/wtAcUGAi/7x69QqzZs2S+MRVmvLlyyM2NhYVKlQohJ6R3NDDsfjinMPCwgJ//PGHuGzo0KESu2XkxdOnT3HkyBHs2LEDf//9t7hcU1MTERERaNCggULtSXtTaWFhARcXF7Rr1y5f+lxUaKwoJ/suM9JoaWnB0NAQdevWxb59+yRm1507d06wjW5upC0rWrVqlUTAQl6BgYGYOnVqjuebNm2K8PBwQd6L0ozGCSGy0TghRDEFHZj4CECHc/5VmZvkFwpM5L/jx49j1qxZePPmTY51xo4di7Vr1xZir0hO6OFYvGXflaBMmTK4efMmatasqXSb7969w7Fjx3D48GFcvnxZap3169dL7IYgj4yMDNja2uLChQsS5zp37oyZM2fCzMysRO6WQGNFcffu3YOZmZkg0KAILS0thIeHo06dOnJf8+XLF3Tr1g13794Vl6mpqeHYsWNyLUvK6uLFi+jfv79gFpCWlpbE7MBly5ZJJI0trWicECIbjRNCFFPQu3LcBpCnhceMsUqMsUOMsT8ZY7GMsfbZzpszxhIYYze/fbnn5X5EPn379sXVq1clsqRnRUs4CJFP7969Ub9+ffFxamqqUjMmPn78iL1798LW1haNGzfGzJkzcwxKWFtbY+TIkUr1V0VFBZs3b5aaEDAiIgI2Njbo0aMHQkJCUJISJRPFcc7h4uKidFCCMYZt27YpFJQAAA0NDfj7+wtm5KWkpKBPnz5YsWIF0tLS5Grn4cOHGDFihCAooa6ujiNHjgi2vQYyAxMvXrxQqJ+EEEIIKVjyBiZ+A3CGMebKGBub9UuBe60HcIZz3gSAEYBYKXUiOectv30tUqBtkgeVKlWCt7c3jh49iv/973+CcyYmJmjevHkR9YyQkkUkEsHR0VFQ5u/vj/j4eLmuDwsLw8iRI9GoUSNMnjwZ58+fz3E7XxUVFQwaNAhbt27N04wGPT09nDp1KsdEhVeuXMHAgQNhbm6OkydPKv3GlRRvJ0+eRGRkpKDM29sbx44dw7JlyzBixAgYGxujfPnyUq93cXFB9+7dlbp3/fr1JbaxTU9Px/Lly2FtbS1zq88PHz7A3t4eHz58EJRv3rwZbdq0weLFiwUJNRMTEzFv3jyl+koIIYSQgiHvUg7Jeb6ZOOfcQo7rtQDcBFCP53BDxpg5gJmc8945tUNLOQpeYmIiPD09sWfPHlSvXh3+/v4Kr1snBYemExZ/ycnJaNGihWB5lJubG2bOnJnjNXFxcZg3bx7OnTsns/22bdvC1tYW/fv3R7Vq1fKlz0DmJ+YRERFYvXq1xBvUrAwMDDBu3DhUqlQJKioqUFFRAWNM/H3Wr9q1axfZ7yuNFfl9+fIFJiYm+Oeff8Rl5ubmOHr0qETQKyMjA0+fPkVsbCxiY2Px4sULtGvXDnZ2dnle8rNs2TKsXLlSorx8+fLw9PTEsGHDJO6RmpqKAQMGSPzOzps3D7NmzRIfb9u2TXAMAEeOHIGFhcyXMD80GieEyEbjhBDFFGiOibxijLUE4AMgBpmzJa4DmMY5/5yljjmAwwCeAXiBzCDFvaztUGCi8HDOS+S68h8dPRxLhrVr12LRov8mfVWtWhV37tyRSAgYHx+PFStWYNu2bblOWTc0NIStrS1sbW0VniqvjCtXrmDNmjVyBUpksbS0xLZt21C5cuV86Jn8aKzIb9WqVVi6dKn4WCQSISoqqkB2lJHl7NmzmDp1Kt6+fStxzsbGBl5eXtDW1gaQ+ZyaNm0aAgICBPWkzSRKT09H165dcfPmTXFZvXr1cOnSJairqxfQT1P80TghRDYaJ4QoptACEyzzSS++Gedc5rxexpgxgGgAHTnnVxhj6wF85JzPz1KnIoAMznkiY8wawHrOueB/gayBibi4OIX6TQghheXTp0/o06ePYDtPFxcX2NraAgDS0tJw7NgxbNmyReq2vQBQo0YNWFlZoXv37kU2a+nPP//Ejh07pCbHVIS+vj7WrFmDevXq5VPPSH55/fo17OzskJycLC6zt7fPdYZPQXv//j2WLFkideZO1apV4eHhARMTEwQGBmL9+vWC80ZGRti0aRPU1NQkrr137x7GjBkjyJcyceJEjBs3Lv9/CEIIIaQUyRq8K+hdOWoC+BVAZwCVsp7jnMvc8J4xpgcgmnNe59uxGQAXznmvXK55AsCYc/7uexnNmCClHUXtS4758+dj48aN4uO6devi999/x8WLFzF37lzExMRIva59+/Zwd3eHqalpsZm1FBsbi7Vr1+Lw4cNK55ioUKECfH19YWVllc+9k47GinzGjRuHQ4cOiY+1tbVx48YNVKpUKZerCh7nHH5+fnB1dcWXL18kzvft2xcnTpwQBBnq1KmD0NBQVK1aNcd2Z8yYge3bt4uPy5Yti+joaNStW1eufj1//hxxcXEwMTGRe0vU4ozGCSGy0TghRDEFHZg4CSAJwHIA4cgMUHgACOac577h+X9tRAIYxzm/zxjzAFCOcz4ry3k9AK8555wx1g7AIQC1s+akoMAEKe3o4VhyvHjxAkZGRoJdAoyMjHDr1i2p9fX19bF48WL069ev2AQksnv06BECAwPxzz//ICMjQ+oX5xzp6el4+vQp7t+/L7ieMQYPDw84OTkV+M9IY0W2y5cvo2fPnoKydevWFaudmOLi4jBhwgT88ccfudarWLEiQkJC0Lhx41zrxcfHw9jYGO/eiT/zgKWlJQ4ePJjr7+STJ0/g6emJAwcOICMjAzo6Oti8eTMsLS0V+4GKGRonhMhG44QQxRR0YOJfAP/jnH9mjMVzzisxxrQBXPq2y4Y8bbQE4AtADcAjAGMA2AMA53wLY2wqgMkA0gB8AfAL5/xS1jYoMEFKO3o4lixTp05FYGBgrnU0NTUxffp0TJ069Yf4BPa7lJQUzJgxA7t27ZI4Z29vj/Xr1xfY2v7k5GQ8ffqUxkou0tPT8dNPP+H27dvisubNmyMsLAwikcyJkIUqNTUVK1aswNq1a6XO2BGJRDh06BB++uknudrbu3cvJk+eLCgLCAiAjY2NRN1nz55h9erVCAwMlJoHxsHBAe7u7ihbtqycP03xQs8UQmSjcUKIYgo6MPEGQC3O+ddvSyzaAvgI4B3nvEKuF+cjCkyQ0o4ejiXLX3/9BRMTE+T0/6y9vT0WLFiAGjVqFHLPCgfnHFu2bMG8efMk3lAaGxsjMDAQenp6+Xa/lJQUjBgxAiEhITA2NsaJEydKdWLD3Pj7+2PatGmCsuDgYHTo0KGIeiTb5cuXMXHiRMHuIUBmstmxY+XfvZxzjl69euHSpf8++6hZsyauXLki3g711atXWLt2Lfz8/JCSkpJrey1atMD27dtL5P/N9EwhRDYaJ4QoRtnAhIqc9a4AsP72/VkA+wEcAfC7MjclhJDSoFGjRrC2tpYob9u2LUJDQ7F169YfNigBZC7dmDx5Mg4dOgQtLS3Bud9//x0WFhYyp+grYvv27Th79iwyMjJw9epVbN26Nd/a/pHEx8cLdo0BgAEDBhTroASQmX8lMjISgwcPFpfNmjVLoaAEkPl7uWbNGqiqqorLnj9/jpUrV+Lff/+Fu7s7WrVqBR8fH5lBCQC4ffs2unTpgoCAgByDkIQQQgjJnbwzJioBUOGcv2eMaQCYAaACAC/O+csC7qMYzZggpR1F7Uuex48fo3v37nj79i1q1KgBDw8PDBw4sNjmkSgoDx48wJAhQyR2VFJXV4e3t7d4x5K86NatG65duyY+NjU1xZkzZ/Lc7o/G1dUVmzZtEh9raGjg2rVr0NfXL8JeKeb7rIn//e9/SrexYMECwa4eIpEIGhoaSExMlFq/bt26cHFxgb6+PiZOnIhnz55J1Onfvz/WrVtX5MlD5UXPFEJko3FCiGIKbbvQokSBCVLa0cOxZEpOTsaDBw/QpEkTwae0pU18fDzGjRuH0NBQiXMeHh5wdnZWuu3nz5+jadOmgjKRSIRHjx5JzNYoze7fv4+OHTsK8iXMnTsXc+bMKcJeFY3ExESYmppKDTBkpa+vj9mzZ2PIkCEoU6YMgMzfZWdnZxw7dkxqfV9fX5iamhZIv/MTPVMIkY3GCSGKKdClHIyxsoyxpYyxR4yxhG9l3b8lrCSEEJILdXV1NGvWrFQHJQCgUqVK2L9/PxwcHCTOLVy4EHfu3FG67aCgIImy9PR0hIeHK93mj4ZzDldXV0FQQl9fH05OTkXYq6JTvnx5LF++PMfzenp6WL16Na5fv46RI0eKgxJA5u/yzp07sWHDBmhqagque/bsGaytreHp6Sk1YSYhhBBCJMmbY2IdgGYAhgH4PmvhHjJ30SCEEELkIhKJsHTpUvz6669QU1MTl3POsWfPHqXbPXHihNTy3377Tek2fzRnzpzB+fPnBWVLliz5oXaDUVTv3r1hZWUlKKtatSqWLl2KP/74A+PGjctxxw3GGEaOHInw8HA0b95ccC4jIwOenp5o164dZs2ahaCgIMTHxxfYz6EMzjnlxCCEEFJsyJtj4iWABt+2C33POdf+Vh7POS+0hZS0lIOUdjSdkPxIsm/bqKuri5iYGIVnlrx58waNGzeW+iarVq1auH37dqnL6ZHdp0+f0KVLFzx69Ehc1rFjRwQFBZX6v5v4+HjMnDkTjx49Qp8+fTB+/Hjx7hzy+vr1KxYtWgRvb+8c66ioqMDIyAhdunRBly5dYGJiIjHbQhrOOZKSkpCYmAhdXd18+fc6e/YsnJ2dkZ6eDm9vb3Tr1i3PbRLyo6LXXoQopqC3C/0bQAvOecL3wARjTAdANOe8vjI3VgYFJkhpRw9H8iP58uULGjVqhE+fPonLDh06BEtLS4Xa2blzJ6ZPn57j+WvXrpXacZOamgp/f3+sWLECb9++FZerqKggIiICzZo1K8Le/XhCQ0MxefJkwd91TtTU1NC2bVuYmZlBQ0MDHz58wPv378Vf8fHxeP/+PT58+ICvX78CAKpXr46DBw/m6d/t7du3aN26tXjclS9fHlevXv2hdwgiJC/otRchilE2MCHvx1IHAfgzxqYDAGOsOgAvAPuUuSkhhBCioaEBGxsb7N69W1x24MABhQMT2ZdxMMYEsyfOnz9f6l5Ucs5x/PhxLFq0SDBL4rsxY8ZQUKIAWFpaIioqCrNnz8aJEyeQkZGRY92UlBRERUUhKipK7vZfvnyJ8ePHIzIyUumcNStXrhQEAxMTE+Hm5oYdO3Yo1R4hhBCSH+TNMeEK4DGAOwAqAYgD8ALAwgLqFyGEkFLA3t5ecBwUFJTjdo3SfPjwAZGRkYKykSNHCo5LW56JyMhIWFpaYvTo0VKDEgYGBnBzcyuCnpUOurq68PPzw+PHj7F3715MmjQJhoaG+dZ+bGwsdu7cqdS1Dx48kHrtkSNHcOHChbx2jRBCCFGaXIEJznkK53w657w8gGoAKnw7TinY7hFCCPmRderUCTVr1hQfJyUlSd1hIyfBwcGCnQ+aNGmCiRMnCupcvHgRycnJee9sMXfv3j0MGjQIffr0wfXr1yXOa2pqYubMmTh79iwqV65cBD0sXbS0tNCzZ094enri0qVL+Ouvv7B9+3aMHDkSderUUait7Hklli5divfv3yvcJw8Pjxx3Cpk5c6Z4yQghhBBS2HKdB8gY+18Op2p9f0hyzv/J704RQggpHVRUVDBw4EB4eXmJy/bv34/BgwfLdX32ZRx9+vSBgYEBdHV18ebNGwCZwY7o6GiYm5vnW7+Lk6dPn2LZsmXYt2+f1ASgIpEII0eOxJw5c6Cnp1cEPSRA5kwKW1tb2NraAgD+/vtvRERE4Pbt21BTU0PlypWhra0NbW1tVK5cWfylra2NT58+wdjYWDybKD4+HsuXL8eqVavkvv/ly5dzDfo9fPgQGzZswKxZs/L2g+ajxMREhROREkIIKZlyTX7JGMvAf9uDSktiwTnnooLomDSU/JKUdpSAifyIYmJi0KFDB/GxiooK7t27h+rVq+d63cePH9GgQQOkpPw3ee/ixYto1qwZRo4cKQhaODo6YvHixfnf+SJ24sQJTJw4EV++fJF6vk+fPnB3d6f/N34A69atw8KF/62gFYlEiIyMlGuZCOcc3bt3x7Vr18RlrVu3Rp06dXDkyBFxmbq6OqKjoxWe0ZGfOOc4ffo0lixZgpiYGHTs2BHbtm2j5JykyNBrL0IUo2zyS1lLOW4hM5+EG4DaAMpk+1LL+VJCCCFENkNDQzRv3lx8nJGRgUOHDsm87uzZs4KgRL169dC0aVMAgKmpqaDu+fPn86m3xcfu3bsxevRoqUGJ9u3b49y5c9i1axe9oP5BTJ48WRAwSE9Px9y5c6XOksnuxIkTgqAEACxevBgODg6oWrWquCw5ORmzZ8+Wq82sUlNT4efnBw8PD4SFheWa9DM3t27dgo2NDYYOHYqYmBgAQFRUFKytrfH3338r1SYhhJCSIdfABOe8FQA7ANoAogAEAxgMQI1zns45Ty/4LhJCCPnRZU+CuX//fpnXZF/GYWNjI16L365dO6io/PeIi4mJwcuXL/Ohp8XD5s2b4eDgIPEGsEmTJti7dy+Cg4PRrl27IuodKQjq6upYsmSJoCw8PBzBwcG5XpeSkgIPDw9BWc+ePdGxY0dUrFgRixYtEpw7d+6cQnleEhMTYW9vD2dnZ3h5eaFfv35o164dNm3ahPj4eLnaePnyJRwcHGBubi6RzBYAnjx5gl69euHhw4dy94sQQkjJIjP5Jef8Lud8FoA6ANYC6A3gJWOsdQH3jRBCSClhZ2cnCCTcvXsX9+7dy7H+58+fERoaKiizsbERf6+lpYXWrYWPqR9hdw7OOVasWIG5c+cKylVUVLBy5UpERUWhZ8+eEskSyY+hV69e6NKli6Bs3rx5uSat3LFjBx4/fiw+FolEgiUhQ4YMQfv27QXXzJ07V67dcd69ewcbGxuJsfXgwQO4urrCwMAATk5OuHnzptTrk5KSsHLlShgbG2P37t25ztR49uwZrK2tERsbK7NfhBBCSh55twsFgIYAugBoD+APAB8KpEeEEEJKHT09PYnklAcOHMixfmhoqGAJg76+Plq1aiWoY2FhITgu6YEJzjnc3NywfPlyQbmamhr8/f0xYcIEiESFlvaJFAHGGJYvXy4I4j158gSbN2+WWj8hIQErV64UlI0aNQqNGjUStLlmzRrB786zZ89kJtb8+++/0aNHD9y4cSPHOl++fEFAQADMzc3RrVs37Nu3D8nJycjIyMC+fftgbGyMZcuW4fPnzxLX/vTTT4JgIwC8fv0avXv3xq1bt3LtGyGEkJIn18AEY0ybMebAGLsK4BiARACdOec/cc4f53YtIYQQoohBgwYJjg8ePJjjWvWTJ08Kjvv06SMxS6Br166C4wsXLiA9vWSuQExPT4eTkxO8vb0F5Zqamti/fz/69OlTRD0jhc3Q0BA///yzoGz16tV49eqVRF0vLy/BtqLlypXDnDlzpLY5ZcoUQZm3t3eOsxPu3buHHj164MGDB4JyfX19lClTRuo1165dw6RJk2BoaIhOnTph0qRJePHihUS9xo0b4+DBgzhy5Ah27tyJYcOGCc7/+++/sLGxwe+//y71PoQQQkomWTMmXgCYisyghAOAaAANGGMW378KuoOEEEJKh969e0NTU1N8/OLFC6nrzZOTk3HmzBlBWfZPVgGgTZs20NLSEh+/f/++RH7SmpKSgp9//hm7du0SlGtpaeHo0aP46aefiqhnpKjMnTsXlSpVEh8nJiZK5Ip49uyZxEwKJycnVKtWTWqbc+bMEex8kZaWhhkzZkgsr7h06RJ69uwpkbPF3Nwcly9fxr179+Dm5gZ9fX2p93n//r04sWVWVapUwerVqxEVFYVu3bqBMQaRSISNGzdi3LhxgroJCQno168foqKipN6DEEJIySMrMPEKgDqA8QC2S/nyLdDeEUIIKTXKly+P3r17C8qkLee4cOGCYP17tWrVYGJiIlFPVVVVYnlI9rwUxV1SUhKGDRuGY8eOCcp1dHQQFBQk9ecmPz5tbW24uroKyvbs2SNYVrF06VIkJyeLj/X09DB16tQc2yxfvrzEMqFLly4JEtGeOnUKAwYMwMePHwX1BgwYgAMHDqBChQrQ1dXFzJkzcfPmTezevVtiSVV2ampqcHJywvXr1zFu3DioqqoKzquoqGDVqlUSfU9MTISdnR3CwsJybZ+Q4iQtLQ3R0dE/VDJmQvKLrF056nDO6+byVa+wOkoIIeTHl313jhMnTiApKUmiLKs+ffoI1txnlX05R0nKM5GQkABbW1uEhIQIyvX19XH69GnBFquk9Bk7diwMDAwEZXPmzAHnHHfu3MG+ffsE51xdXVGuXLlc27SxsYGlpaWgbP78+YiPj0dAQABGjBghCHYAwIQJE+Dr6ws1NeEO8qqqqujVqxeOHDmC33//HVOmTBHMYAKAvn374sqVK1i0aJFgBkh2jDEsXrwYs2fPFpR/+fIF9vb2EjOoCCmOvn79il69eqFHjx5o1aoVBdUIyYYpuld1UUpISCg5nSWkAMTFxaFhw4ZF3Q1CCkxaWhoMDQ3x5s0bcdmOHTswYMAAAEBqaioaNmwo2Ibw+PHjEjsVfB8rz549Q7NmzcTlIpEIjx49kniDVNy8ffsWdnZ2EktPGjRogKNHj6JWrVpF1DNSnISFhaFfv36CMh8fH+zduxcXLlwQlzVp0gQXL16UmI0g7Zny6NEjtG/fXrDTR9OmTaXukuPm5oYZM2bIvQtMUlISjh8/jocPH6J79+5KbWm7bt06wa4iQGYQZOvWrRgq/PLzAAAgAElEQVQwYADtSEPyXX699tq1axccHR3Fx/r6+rh69apgCSMhPwItLS2l/iNWZFcOQgghpECpqqrCzs5OUJZ1KnlkZKQgKKGtrY2OHTvm2J6+vj4aN24sPk5PT0d4eHg+9jj/Xbx4EWZmZhJBiWbNmiE4OJiCEkTM3Nwc1tbWgrIZM2YIghIAsHDhQomgRE7q1auH6dOnC8qyByVUVFSwfv16zJw5U6FAgKamJoYMGQI3NzelghIAMH36dHh6egrK0tLS8PPPP6Njx47w9vbG27dvlWqbkILCOceWLVsEZc+ePcO6deuKqEeEFD8UmCCEEFKsZN+dIzQ0FO/evQMguYyjV69eMt9wlZRtQzMyMrBmzRrY2NhI7LDQrl07BAUFQVdXt4h6R4qrJUuWCJZRfPr0SXDezMwM3bt3V6hNZ2dn1KsnfbVu2bJlERAQgFGjRine2XwyadIkeHl5SQRFYmJiMG/ePBgYGGDo0KE4deoUUlNTi6iXhPzn4sWLUmcdbdiwAU+ePCn8DhFSDFFgghBCSLFiZGSEJk2aiI/T09Nx+PBhpKenIygoSFBX2m4c2WXPM3H+/HmJnQaK2rt37zBw4EAsXrxYYotUCwsLHD16NNc1+KT0qlevnsRWn1ktXrxY4eUN6urqWL16tUR5xYoVceTIEYkktUVh9OjR2Lx5s9T8MmlpaQgODsawYcNgYGAAV1dX3L17N8e2MjIyEB8fj8ePH+PGjRu4cOECHj58WJDdJ6VM9tkS3339+hXz5s0r5N4QUjxRYIIQQkixwhiTmDVx4MABXLp0STxzAsh8k5Q9t4Q0HTt2hLq6uvj46dOnePDgQf51OI8uX76Mzp074/z58xLnZsyYgQMHDshMWkhKtxkzZkjdBnTgwIFo2bKlUm1aWFhg8ODB4uNq1aohODg416VThW3w4MEIDg6GlZVVjglw3717h02bNqFTp07o0qULJk6ciEGDBqFbt24wNjZGvXr1ULVqVdSpUwetWrWChYUF+vfvD2NjY2zYsKGQfyLyI3ry5AlOnz6d4/lTp04V25l8hBQmCkwQQggpdgYOHCg4vn79Ory8vARlPXr0kNgJQBoNDQ106NBBUCYtCFDYMjIy4OXlhd69e+PFixeCc9ra2jh06BDmz58vd24AUnpVqFAB7u7ugjI1NTW4ubnlqd1ff/0VXl5e8PDwQFRUlCCRbHFhamqK/fv3IyYmBgsXLkSjRo1yrHvr1i3s378f586dw7Vr1/DgwQO8f/9eYpYSkJkTwN3dPcdPuknuXrx4IbGsqLTy9fUV/I41bdpUIseKi4sLUlJSCrtrhBQrFJgghBBS7NSqVQudOnUSlGUPJsizjOO74pZn4v379xg8eDA8PDyQnp4uOGdqaorIyEiJbRsJyc2QIUMEvzNubm6oXbt2ntpUVVXF6NGj4ezsjKpVq+a1iwVKT08P06ZNw5UrVxAaGoqxY8eiYsWKeW7XxcUFu3btyocelg6cc8yePRuGhoZo2LBhkf9fW9QSExMREBAgKJs0aRJWrFghWGL1119/wcfHp7C7R0ixQoEJQgghxVL25RxZlStXTiJ3RG6y142MjERycrLSfcuLK1euwMzMDOfOnZM45+zsjJMnT6JmzZpF0DNSkqmoqGD37t04ePAgQkND4eTkVNRdKhKMMRgbG2Pt2rW4f/8+fH19YWFhITPPRoUKFVCrVi0YGRlBQ0NDcM7JyQlHjhwpyG7/MHx8fMRvsJOTkzFp0iQkJSUVca+Kzv79+/Hx40fxcZUqVTBw4EC0atUKI0aMENRdsWIFXr9+XdhdJKTYYMUtAVhuEhISSk5nCSkA+bWXNiElQUJCAho1aoSvX79KnOvfvz927tyZ47XZxwrnHE2bNhUsmTh27BjMzc3ztc/ZpaSkICYmBjdu3MAff/yBGzduIDY2VmLqeOXKlbFlyxZYWVkVaH8Iyao0PVOePXuGiIgIZGRkoHLlytDW1hb/WalSJcGysAsXLsDe3l4wtV5VVRW7du1Cz549i6L7YhkZGXj+/DmSk5NRr149iESiIu1PVnfu3EHXrl0lliQsXboUDg4ORdSrvFN2nGRkZMDU1BR//fWXuGzGjBmYP38+AODt27do06aNIHAxdOhQbNq0Ke+dLmFSU1OxevVqnDx5Evr6+jAzM0OXLl3QrFmzHPPHkOJLS0tLsYzL3xRaYIIxVgmAL4BmADiAsZzzy1nOMwDrAVgDSAIwmnN+I2sbFJggpV1pehFJCJCZef/YsWMS5Tt37kT//v1zvE7aWJk6dSoCAwPFx46Ojli8eHG+9TU9PR1xcXGCIMTdu3elBlayateuHbZv345atWrlW18IkQc9U3J26tQpjBw5UrDUqmzZsjhw4IBcSXfzgnOOd+/e4cGDB3j48CEePnwo/v7Ro0fi2V6mpqbYt29fsdix5/PnzzA3N0dcXJzEOV1dXdy8eROamppF0LO8U3acnD9/Hra2tuJjVVVV3L59GzVq1BCXbdmyBS4uLoLrQkJC0LZtW7nucfnyZfj4+KBMmTKYMmWK0sluv8vIyEBISAieP3+OAQMGFMrv1vv37zFq1ChERkZKnKtSpQrMzMzQuXNndOnSBfXq1VN4lyFS+EpCYMIfQCTn3JcxpgZAk3Men+W8NQBHZAYmTACs55ybZG2DAhOktKMXkaS0OX36NIYMGSIoU1dXx4MHD1C+fPkcr5M2Vo4ePYoxY8aIjw0NDXHp0qU89zEpKQkbNmzA1q1b8eHDB4WudXR0hLu7O8qUKZPnfhCiKHqm5O7QoUMYP368YHthTU1NHD16FCYmJrlcqbiEhARs2LABv/32Gx4+fCj4FD03nTt3xqFDh+RKBFyQHB0dc83FsWzZsly3tS1MCQkJOH78OOLi4lChQgXo6uqiatWq0NXVhY6ODnR0dATPF2XHycCBAxESEiI+trW1xfbt2wV1UlNT0blzZ8TGxorLWrVqhfPnz+c6U+Dz589YuHChIC+FSCTCtGnTMGfOHJQtW1bh/v75559wdnZGdHQ0gMxcT6dPn4a+vr7CbSlyzyFDhuDx48dy1c86m8LKygqVK1cusL4R5RXrwARjTAvATQD1eA43ZIxtBRDGOd/77fg+AHPO+cvvdSgwQUo7ehFJSpuUlBQ0adIE79+/F5dZW1tjz549uV4nbax8+PAB9evXFyyjiI2NRfXq1ZXqG+ccx44dw/z58/Hs2TOFrm3atCnmz5+PHj16KHVvQvIDPVNkCwgIkMjXUbFiRZw4cSLPn05/FxMTg+HDh+PRo0dKXT906FB4e3sX2SfJR44cwdixYwVlVatWFWzvXK1aNdy8eVMif0dhycjIQGRkJHbv3o0TJ07IzDGkqamJqlWrQkdHBxUqVMCIESMEsx9kefDgAYyNjQVlOc2ECA8PR9++fQVlGzZswMiRI6W2HRkZCUdHRzx58kTq+SZNmsDb2xtt2rSRq6/JyclYvXo11q9fj9TUVMG5Ro0a4fTp06hSpYpcbSni3Llz+Pnnn5XevUVbWxs7duwo8CWZRHHFPTDREoAPgBgARgCuA5jGOf+cpU4QAE/O+cVvx+cBzOGc//69TtbAhLSpYoQQQn48q1evxv79+8XHS5cuRffu3ZVqa+zYsbhz54742N3dHX369FG4nfv372PNmjX4448/ZNbV1dWFgYEBDA0NYWhoCAMDA2hpaSl8T0JI0dizZw/WrVsnKNPS0oKPjw/q1auXp7bPnTuHxYsXK5SMVyQSSezmM2nSJPz888956osynj9/jmHDhuHzZ/FLetSuXRsbNmzA4MGD8eXLF3H59OnTMXTo0ELt34sXLxAUFISgoCC8fPlS9gW5mDZtGoYPHy5X3VWrVuHAgQPiY0NDQ/j5+eUYPHJxcRHsPFW5cmUcPnwYFSpUEJclJSVh48aNOHTokMz7q6ioYNiwYZgwYQLU1dVzrHft2jV4enrin3/+ybGOoaEhNm3ahHLlysm8rzw45wgMDMTGjRuR/X1oy5YtYWFhgevXr+P69etITEzMta1y5cph27ZtFGAtBrL+GxT3wIQxgGgAHTnnVxhj6wF85JzPz1JHocAEIaURfbpFSqOEhAQMHjwYv//+O+zs7ODt7S0zGVZOY2X58uVYsWKF+Fja1NrcvHv3DkuXLoW/v79EAksg85PUtm3bolWrVmjdujVatWql9IwMQgoaPVPkt2rVKixdulRQpqenh9OnT6Nu3boKt5eamooFCxbkmOhQQ0MD9evXR4MGDVC/fn3B95xzWFpaSnxi7uPjk+tuRvktNTUV1tbWuHbtmrhMTU0NISEhMDIygoeHB7y8vMTnCmvWRFJSEk6ePIndu3cjIiIiX9vObSbDdwkJCWjatKngTbWsf5t//vkHJiYmgkDOpEmT4OnpCSBzVoWjo6PUAELt2rWRkpIiNfDSsGFD/PrrrxJLj/7991+4ublh7969uf4s35mbm2P//v1KLRHJ6uvXr3B2dpZ63xEjRmDNmjXiZUlpaWm4desWIiIiEB4ejujoaKkBvJo1ayI0NJSetcVIcQ9M6AGI5pzX+XZsBsCFc94rSx1aykGIDPQikpRmqampcudiyGmsXL16VTDbQltbG3FxcTIz26empsLX1xeenp5ISEiQOK+qqopJkyZh1qxZNBuClBj0TJEf5xweHh5Yv369oLxWrVrYsWMHjI2N5V5K8ebNG4wZMwZRUVES50aMGIE5c+agRo0auQZg4+Li0K1bN8THi9O1QU1NDUeOHEGnTp3k/KnyZvHixVizZo2gbPny5Zg8eTKAzECukZGRYDaFMrkmvn79ih07duDhw4dIS0sTf6Wnpwu+T09PR0pKCq5fvy4zR0etWrUwYMAAMMbw9u1bwdebN28kdhb5jjGGHTt25Jp8edOmTXB1dRUfV6tWDXfu3JGZB2TFihVYvny5+FgkEuHMmTPYu3cvduzYIfWaCRMmwN3dHWlpaZg3bx52794ttc+TJ0+Gm5sbNDQ0sH//fri6ugqWSH6np6cnDr5nD+r07dsXO3bsUHonmNevX2PEiBG4evWqoFxFRQVLly7FpEmTch1DX79+xdWrV3Hs2DGJDxRatGiB4ODgXHNPkcJTrAMTAMAYiwQwjnN+nzHmAaAc53xWlvO9AEzFf8kvN3DO22VtgwITpLSjF5GEyCensZKWlob69esLggvDhg1DjRo1UKFCBalfz58/x4IFC3D//n2p9+rWrRuWLVtGY5OUOPRMUQznHLNmzYKvr6/EOQMDAwwfPhz29vaoWrVqjm1cu3YNo0aNEmxdDGQGFVatWoVRo0bJ3Z+oqCj0799f8Ca6UqVKCAkJKfB/1/DwcPTr108wFd/Kygr79u0TvLnM66yJlJQUDBo0CGFhYXnus7q6OmxsbDBs2DCYmZnlGPjhnOPjx494+/Ytbt26hcmTJwv+jsuUKYM9e/agW7duEtemp6ejTZs2gtksc+fOxZw5c2T278uXLzAxMcl1WcV3devWxa+//oqOHTsKykNDQzFt2jQ8f/5c6jX6+vpSd79gjGHs2LFwd3eHlpYWPn36BBsbG4nliqNHj8a6desUzmdy69YtDBs2TCIfU8WKFbFz50507dpV7rY455g9eza2bdsmKLeyssKePXsUDpzEx8fj5MmTUFNTQ9++fXNd+kLkUxICEy2RuV2oGoBHAMYAsAcAzvmWb9uF/gqgBzK3Cx2TdRkHQIEJQuhFJCHyyW2sjBo1CsePH8/zPerXr49ly5bBysoqz20RUhTomaK4jIwMTJkyBfv27ZN6XlVVFT179sTw4cPRtWtXqKqqAsh8M7Vz507MmTNHIsFgzZo1ERAQIHeywqwOHjyI8ePHC8rq1KmDkJAQ6OjoKNyePN69e4dOnTrh1atX4jI9PT1cvHhRIijz7t07tGjRAklJSeKyrLMqcsM5x5QpU+RebpATY2NjDBs2DAMGDFBqRpuvry/mzJkjyOuhrq6Ow4cPSwQGgoODBXk01NTUcPfuXejq6sp1r5MnT2LEiBE5nmeMYdKkSZg/f36O269+/PgR7u7u8PPzk+uehoaG8PLyQrt2gs+D8e7dO/Ts2VMir9/MmTPh5uYmV9vp6ek4fPgwnJ2dBb8DQOYzdN++fUr9H5Seno6hQ4fi7NmzgvIJEyZg5cqVcrdz/vx5ODg4iH+XW7RogX379gm2dCWKUzYwkfsi3XzEOb/JOTfmnLfgnPfjnH/gnG/hnG/5dp5zzh045/U5582zByUIIYSQ/KDIJzPSVKhQAYsXL8bly5cpKEFIKaOiooJff/0VdnZ2Us+npaXh5MmTsLe3R/PmzbFo0SLExMRg6tSp+OWXXySCEmZmZggLC1MqKAFkbkmZ/U3ikydPMHToUEG+gvzCORe8kQMy3yxv3bpV6kyRqlWrSgROvLy85OrbihUrlA5K6OrqwtHREdHR0QgNDcWYMWOUXmbXpUsXbN68WTBLIDk5GYMHD8bNmzcFdbdu3So4trW1lTsoAQC9e/fOcZeJ+vXr4/Tp01i+fHmOQQkgcxaCl5cXjh8/jlq1auVYT11dHe7u7ggLC5MISgCZ/3ZHjhxBzZo1BeWrV6+Gt7d3rj/H8+fPsWLFChgZGWHChAkSQQlzc3OcP39e6cCoSCTC9u3b0aJFC0G5j48PNm/eLPP6pKQkzJo1C7a2toLf5du3b6Nr164S/66kcBTajIn8QDMmSGlHn24RIp/cxkpycjLMzc3x559/KtQmYwzDhg3D/PnzUa1atfzoJiFFip4pyuOc4+zZswgICMDZs2cldsmQh5OTE9zd3cWzKvLSF0dHRwQGBgrKbWxs4OfnJzNZsCK2bNkCFxcXQdmMGTMwf/78HK5QbtbEnj17JHJR1K1bF46OjlBVVRV/iUQiwZ+qqqrQ0tJCy5Yt5c5JJMv3ceLr64uZM2cKzlWpUgXBwcFo3LgxYmJi0KFDB8H5sLAwhbeVvX//Pjp27Ii0tDQAmc8eBwcHuLq65hqQkObTp09YtGiRxLIHc3NzrF27Vq5dZe7fv4+ePXtK5KTYvHkzhgwZIj5OS0vDuXPn4O/vj5CQEKkJogFg4sSJWLp0aZ5/7wHg5cuXsLS0FCxdYYwhMDAQvXr1knrN9evXMXHiRDx48CDHdjU1NeHj44PevXvnuY+lUbFfypEfKDBBSjt6EUmIfGSNlZSUFISFheHVq1f49OmT1K/ExER8/PgRX758QbNmzfDLL7+gVatWhfhTEFKw6JmSP16/fo39+/dj165dcm1nX65cOXh7e6Nfv3751ofU1FQMHDhQIheDo6MjFi9eLD5OTk7Gs2fP8PTpUzx9+hT//PMPnj59itevX0NVVRWamprQ1NREuXLlJL7nnGPevHmCfAtt27ZFcHCwzCDAggULBIlDc8s1ER4eDltbW/EbcyBz+8yQkBA0aNBA0b+aPMs6TtauXYtFixYJzteoUQOnT5/G2rVr4e/vLy5v3749Tp8+rdQ9T548iRUrVkBHRwcuLi4Su2oo6uLFi1i3bh0+f/6MMWPGYNCgQQrlibhx4wb69OkjSGQqEokQGBgIQ0ND7Nq1C7t37851S1ZVVVWsWbNGoTwq8rh79y569uyJT58+ics0NTVx6tQpwTM7NTUVa9aswapVq+QKJDLGsHDhQjg6OiqcU6O0o8AEIaUAvYgkRD40VgiRjcZJ/uKc4+rVqwgMDMTRo0cF20V+16BBAwQGBqJJkyb5fv+EhAT06NEDsbGxgnJLS0t8+PABT58+xZs3b/LtfhUrVkRERATq1Kkjs668syZiY2NhZWUl2FWjbNmyOH78OExNTfOt74rIOk5y2p2lTp06eP36tWCJir+/P/r27VuofS1IYWFhGDRokCAwpaqqivT0dOT2flJDQwP9+/fHlClT0KxZswLp2/nz5zFo0CBBwEFXVxehoaH43//+hwcPHmDixIm4fv26xLV16tTBpk2bcOrUKalLVIYPH461a9fK3FWF/IcCE4SUAvQikhD50FghRDYaJwUnMTERx44dw+7du3H58mUAmdstbtiwoUC3FP7nn3/QrVs3vH79usDu8d2OHTswYMAAueu7u7tjw4YN4uPssyZevXoFS0tLiZ0b/Pz88nV2iaKyjxPOOaZPn55rckl9fX3cvHkzX5YrFCfHjx/HmDFjclymkVWzZs0wevRo2NnZoVKlSgXeNz8/Pzg7OwvKDAwMMGLECCxevFhqXpNRo0Zh6dKl4m1G/fz8MGPGDIkZFZ06dcKuXbtQuXLlgvsBfiAUmCCkFKAXkYTIh8YKIbLROCkcL1++RHJyMurWrVso97t58yasra0lEg7mpxEjRmDjxo0KXfP27VsYGRkJ+uXp6YlJkyYhMTERvXr1wq1btwTXLFq0CE5OTvnSZ2VJGyfp6emYMGECDh8+LPWahQsXYtq0aYXRvULn7++f489Wrlw52NnZYdSoUWjVqlWhL4HIHvzKiY6ODjZu3IgePXpInAsLC8PIkSMFs3aAzOSjBw4cQP369fOtvz8qCkwQUgrQi0hC5ENjhRDZaJz8uE6fPo2RI0dK7AKioqKC6tWro1atWoKvmjVrgnOOpKQkfP78GUlJSVK///r1K1q3bg0HBwelZgNkf+Oop6eH33//HWPHjsW5c+cEdceOHYs1a9YU+fr+nMZJamoqhg8fLrFlpYaGBmJiYn7oT9e9vLzg4eEhPm7VqhVGjx6NAQMGoEKFCkXWr4yMDIwZMybXLcF79eqF9evXS91F5rv79+/D3t4eT548EZRXqlQJu3btgpmZWX51+YdEgQlCSgF6EUmIfGisECIbjZMfW0xMDCIiIlCxYkVBACK/dqtQhrRZE40aNcJff/0lqGdlZYXdu3cXi6UQuY2TL1++wM7ODlFRUeKy0aNHw8vLq7C6V2Sio6MRGxuL1q1bw8jIqKi7I/blyxfY2Njg2rVrgvIKFSpg+fLlGDZsmFzBrn///RfDhw8XL8X6rkyZMujWrRvat28PExMTGBkZoWzZsvn6M5R0FJggpBSgF5GEyIfGCiGy0TghRUHWdHsjIyOcOnVKvO6/qMkaJx8/foSTkxOOHz+Otm3b4sCBA4WSU4Hk7O3bt7CyssKjR48AZO6QsnnzZrkStWb19etXODk5Yf/+/TnWKVu2LFq3bg1TU1OYmprCxMSk1P/7U2CCkFKAXkQSIh8aK4TIRuOEFAVpsya+09fXR2hoKPT09IqgZ9LJO05SUlJo54ZiJCEhAYcPH4aOjg6sra0hEomUaodzjjVr1mDJkiVyX2NgYIAOHTpg8uTJRbLFbVFTNjChkt8dIYQQQgghhBBpdHR08PPPP0uUV6xYEQcPHixWQQlFUFCieNHS0sLYsWPRp08fpYMSAMAYw8yZM+Hv74/q1avLdU1sbCy2b98OKysrPH/+XOl7A0BycjJcXFzQsWNHeHp6SuwY8iOhwAQhhBBCCCGk0Dg5OUFTU1N8XKZMGezatQsGBgZF2CtCcta3b1/cvXsXERERWLlyJWxtbVGzZs1cr/n3338xbtw4pKWlKXVPzjmcnZ2xZcsW3Lt3D56ennBxcUFJWvGgCApMEEIIIYQQQgqNjo4O/Pz8oKenhxo1asDf3x9dunQp6m4RkiuRSIQWLVpgwoQJ2L59O+7du4c7d+5g27ZtGDduHJo2bSqRWPPy5ctYtmyZUvfbvn079u3bJyjbtm0bfv31V6V/huKMckwQUoLQemBC5ENjhRDZaJyQ4oBzXuRbguaGxglRREJCAsaOHYvz588Lyg8fPoyuXbvK3c6VK1fQq1evHGdb+Pn5oV+/fnnqa07S09Px5MkT3L9/H48fP0bt2rVhbW0NFRX55jQom2Oi6PfgIYQQQgghhJRKxTkoQYiitLS0sGXLFpiZmeHVq1fi8gkTJiAyMhI1atSQ2carV68watSoXJeATJw4EdWqVUP79u2V7uvXr1/x8OFD3L9/X/D14MEDpKSkCOpaW1tj69atqFChgtL3k4WWchBCCCGEEEIIIflAR0cHvr6+ghkG8uabSElJwejRowVBDSAzL4uq6n9zCr5+/YohQ4YgLi5Oob6lpaXB29sbpqamqFGjBjp06IAxY8bA09MTR48eRUxMjERQAgCCg4NhZWWFv//+W6H7KYICE4QQQgghhBBCSD7p1KkT5s6dKyi7dOkSPD09c73Ozc0N0dHRgrLp06dj0aJF2LBhg6A8Pj4ednZ2ePPmjVx9unnzJiwsLDBv3jz8+eefCu/wERMTAwsLC1y+fFmh6+RFgQlCCCGEEEIIISQf/fLLLzA3NxeUrVmzBmFhYVLr79u3Dz4+PoIyc3NzuLm5AQCGDh0KV1dXwfm///4b9vb2+Pz5c479SEpKwoIFC9C1a1fcvn1brr7r6OigU6dOaNy4saD833//hY2NDXbt2iVXO4qg5JeElCCUgIkQ+dBYIUQ2GieEyEbjhOTFmzdvYGZmhtevX4vLdHR0EBkZCT09PXHZ7du30b17dyQnJ4vLatWqhbCwMFSpUkVcxjmHk5OTRGDAysoKu3fvFiz3AIDw8HA4Ozvj8ePHUvunr6+Pxo0bo1GjRmjSpAkaNWqExo0bQ1tbGwDw+fNnTJ48GSdOnJC41sHBAYsWLYJIJBKUK5v8kmZMEEIIIYQQQggh+UxXVxc+Pj6CJK9v377F+PHjxUspPnz4gBEjRgiCEurq6ti1a5cgKAFkJotdu3atxA4fZ8+exZw5c/B90kF8fDwcHR3Rt29fqUEJOzs73L9/H3fv3sXhw4exfPlyjBo1Cu3btxcHJQCgXLly8PPzw+zZsyXa8Pb2hr29PRISEpT4m5FEgQlCCCGEEEIIIaQAdOnSReKNfWRkJFatWoX09HSMGzdOIqnk2rVr0bJlS6ntlSlTBn5+fmjevLmgfPv27Vi/fj2OHz8OExMTqcst9PX1sX//fjlqGXEAAAusSURBVPj6+qJatWpy9V9FRQWurq7YuXMnNDQ0BOdCQ0PRrVs3udqRhZZyEFKC0HRCQuRDY4UQ2WicECIbjROSH9LT09GvXz9ERkaKyxhj6NWrF4KCggR1x40bh9WrV8ts8+XLl+jWrRuePXsmsy5jDOPGjYO7u3uetvy8efMmhg4dihcvXgjK4+Pjxd/TUg5CCCGEEEIIIaSYEYlE8PX1hY6OjriMcy4RlGjXrh2WLVsmV5vVq1fHwYMHUbFixVzrNW7cGGfOnMGqVavyFJQAgJYtW+K3335DmzZt8tSONBSYIIQQQgghhBBCClC1atWwbds2Qb6JrHR1deHv7w81NTW52zQwMEBgYCDKlCkjca5MmTKYPXs2IiIiYGJionS/s9PT00NQUBAGDRqUb20CFJgghBBCCCGEEEIKnLm5OWbMmCFRrqqqCj8/P1SvXl3hNjt37gxvb29BmbGxMcLDw+Hq6oqyZcsq3d+caGhoYOvWrXB3d8+3NlVlVyGEEEIIIYQQQkheubi44PLly4iKihKXLVmyBB06dFC6zUGDBqFKlSoICgpC27ZtYW9vL7GNZ35jjOGXX36R2CFEWRSYIIQQQgghhBBCCoGqqioCAgIwffp03Lt3D6NHj8bEiRPz3G7Xrl3zLUigCCMjo3xphwIThBBCCCGEEEJIIalSpQoCAgKKuhvFCuWYIIQQQgghhBBCSJGhwAQhhBBCCCGEEEKKTKEt5WCMPQHwCUA6gDTOuXG28+YAjgN4/K3oCOd8UWH1jxBCCCGEEEIIIYWvsHNM/MQ5f5fL+UjOee9C6w0hhBBCCCGEEEKKFC3lIIQQQgghhBBCSJFhnPPCuRFjjwF8AMABbOWc+2Q7bw7gMIBnAF4AmMk5v5e1TkJCgrizcXFxBd1lQgghhBBCCCGE5KJhw4bi77W0tJgybRRmYKIm5/w5Y0wXQAgAR855RJbzFQFkcM4TGWPWANZzzhtmbSNrYIKQ0iguLk4w8Akh0tFYIUQ2GieEyEbjhBDFKBuYKLSlHJzz59/+fAPgKIB22c5/5Jwnfvs+GEAZxljVwuofIYQQQgghhBBCCl+hzJhgjJUDoMI5//Tt+xAAizjnZ7LU0QPwmnPOGWPtABwCUJtn6SDNmCCEEEIIIYQQQoonZWdMFNauHNUAHGWMfb/nHs75GcbYJADgnG8BYAdgMmMsDcAXAIN5Ya0zIYQQQgghhBBCSJEotBwT+YFmTBBCCCGEEEIIIcVTsU9+SQghhBBCCCGEEJJdoSW/JIQQQgghhBBCCMmOAhOEEEIIIYQQQggpMhSYIKQYYozVYoxdYIzFMMbuMcamfSvXZoyFMMbivv1Zuaj7SkhxwBgTMcb+YIwFfTuuyxi7whh7wBjbzxhTK+o+ElKUGGOVGGOHGGN/MsZiGWPt6ZlCiCTG2PRvr73uMsb2MsbU6ZlCCMAY28EYe8MYu5ulTOpzhGXa8G3M3GaMtZbVPgUmCCme0gDM4JwbAjAF4MAYMwTgAuA857whgPPfjgkhwDQAsVmOVwBYxzlvAOADgJ+LpFeEFB/rAZzhnDcBYITM8ULPFEKyYIzVBOAEwJhz3gyACMBg0DOFEADwA9AjW1lOz5GeABp++5oAYLOsxikwQUgxxDl/yTm/8e37T8h8AVkTQF8A/t+q+QPoVzQ9JKT4YIzpA+gFwPfbMQNgAeDQtyo0VkipxhjTAtAZwHYA4JyncM7jQc8UQqRRBaDBGFMFoAngJeiZQgg45xEA3mcrzuk50hdAAM8UDaASY6x6bu1TYIKQYo4xVgdAKwBXAFTjnL/8duoVgGpF1C1CihMvALMBZHw7rgIgnnOe9u34GTIDe4SUVnUBvAWw89uSJ1/GWDnQM4UQAc75cwCrAfyDzIBEAoDroGcKITnJ6TlSE8DTLPVkjhsKTBBSjDHGygM4DMCZc/4x6zmeudcv7fdLSjXGWG8Abzjn14u6L4QUY6oAWgPYzDlvBeAzsi3boGcKIcC39fF9kRnMqwGgHCSnrhNCpMjrc4QCE4QUU4yxMsgMSuzmnB/5Vvz6+zSob3++Kar+EVJMdARgwxh7AmAfMqfbrkfmlEHVb3X0ATwvmu4RUiw8A/CMc37l2/EhZAYq6JlCiJAlgMec87ec81QAR5D5nKFnCiHS5fQceQ6gVpZ6MscNBSYIKYa+rZHfDuD/7d1fyJ5lAcfx769cE9vYKKkYaXMMRkJmB+YSKc2DBHfQQWjkcJOsLAqKhHBETcGoDgxiB0lQlLE/1kGtA6sDtcIisiyFJLD9cTScps35Zy7dfh3c9/Lx5d108G6P9H4/8PDc731f93Vd9wMP98Pvva7rfqjtrROHtgPrxu11wM9Odd+k15K2N7Z9e9vlDAuU3dX2auBu4CNjMb8rmtfaPgrsSbJq3HUZ8De8p0gzPQKsTnLG+Fvs6HfFe4o0u2PdR7YD14xP51gNPDUx5WNWGUZcSHotSXIx8FvgQV6aN7+BYZ2JO4Czgd3AlW1nLkIjzUtJLgFuaLsmyQqGERRvAu4H1rY9NM3+SdOU5HyGBWLfAOwArmX4B5X3FGlCkpuAqxiekHY/cB3D3HjvKZrXkmwBLgHOBPYBXwV+yiz3kTHY28QwFeo54Nq29x23foMJSZIkSZI0LU7lkCRJkiRJU2MwIUmSJEmSpsZgQpIkSZIkTY3BhCRJkiRJmhqDCUmSJEmSNDUGE5Ik6aRJcmeSda9cUpIkzVc+LlSSJM2JJBuBlW3XnoK2lgM7gQVtXzzZ7UmSpJPHEROSJGneSXLatPsgSZIGBhOSJP2fS7IryQ1JHkjyVJJtSU5/hXPWJPlLkv1JfpfkvIljX0ryzyRPJ/l7ksuSXA5sAK5K8kySv45l70ly3bi9Psm9Sb411rsjyUXj/j1JHpuc9pHkiiT3JzkwHt840cXfjO/7x/bel+R1Sb6cZPdY1w+TLBnrWp6kST6e5BHgriSnJ/lRkifG/vwxyVvn4jOXJEmvnsGEJEnzw5XA5cA5wHnA+mMVTPIe4HvAp4A3A7cB25MsTLIK+CxwQdvFwIeAXW1/AXwN2NZ2Udt3H6P6C4EHxno3A1uBC4CVwFpgU5JFY9lngWuApcAVwKeTfHg89v7xfenY3u/Ha1oPXAqsABYBm2a0/wHgnWO/1wFLgLPG/lwPHDzW5yJJkk4OgwlJkuaHb7fd2/ZJ4OfA+ccp+0ngtrZ/aHu47Q+AQ8Bq4DCwEDg3yYK2u9r+4wT6sbPt99seBrYxhAI3tz3U9lfAfxhCCtre0/bBtkfaPgBsYQgWjuVq4Na2O9o+A9wIfHTGtI2NbZ9texB4gSGQWDle55/aHjiBa5EkSXPAYEKSpPnh0Ynt5xhGExzLO4AvjtMb9ifZzxAgLGv7MPB5YCPwWJKtSZadQD/2TWwfBGg7c98igCQXJrk7yeNJnmIY0XDmcepeBuye+Hs3cBowOT1jz8T27cAvga1J9ib5ZpIFJ3AtkiRpDhhMSJKkmfYAt7RdOvE6o+0WgLab217MEGAU+MZ43lw/6mszsB04q+0S4DtAjtPW3rFPR50NvMjLw5D/ndf2hbY3tT0XuAhYwzB1RJIknUIGE5IkaabvAtePIxaS5I3jQpSLk6xK8sEkC4HnGUY4HBnP2wcsTzJXvy8WA0+2fT7Je4GPTRx7fGx3xcS+LcAXkpwzrlNxdM2LWR8nmuTSJO9K8nrgAMPUjiOzlZUkSSePwYQkSXqZtvcBn2BYOPLfwMO8tFjmQuDrwL8Ypoe8hWEtB4Afj+9PJPnzHHTlM8DNSZ4GvgLcMdHH54BbgHvH6SarGRbsvJ3hiR07GYKTzx2n/rcBP2EIJR4Cfj2eL0mSTqG0cz3qUpIkSZIk6dVxxIQkSZIkSZoagwlJkuahJBuSPDPL685p902SJM0vTuWQJEmSJElT44gJSZIkSZI0NQYTkiRJkiRpagwmJEmSJEnS1BhMSJIkSZKkqTGYkCRJkiRJU/Nfi4n+vN9kPAQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1152x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 1, figsize=(16, 5), sharey=True)\n",
    "\n",
    "pd.DataFrame(\n",
    "    [\n",
    "        (n, mean_squared_error(y_test, y_pred_staged))\n",
    "        for n, y_pred_staged in enumerate(rgr.staged_predict(x_test), 1)\n",
    "    ],\n",
    "    columns=['n', 'Test Error']\n",
    ").set_index('n').plot(\n",
    "    title=f'Ada Boost: Test Error vs n_estimators',\n",
    "    kind='line',\n",
    "    color='k',\n",
    "    linestyle='-',\n",
    "    ax=ax\n",
    ")\n",
    "\n",
    "ax.set_xlabel('n_estimators')\n",
    "ax.set_ylabel('Mean Squared Error (MSE)')\n",
    "\n",
    "fig.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Random Trees Embedding"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 3.3908791046254887\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomTreesEmbedding\n",
    "from sklearn.linear_model import Ridge\n",
    "from sklearn.pipeline import make_pipeline\n",
    "\n",
    "rgr = make_pipeline(RandomTreesEmbedding(), Ridge())\n",
    "rgr.fit(x_train, y_train)\n",
    "y_test_pred = rgr.predict(x_test)\n",
    "\n",
    "print(f'MSE: {mean_squared_error(y_test, y_test_pred)}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R2: 0.93, MSE: 3.39, MAE: 1.44\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import (\n",
    "    mean_squared_error, mean_absolute_error, median_absolute_error, r2_score\n",
    ")\n",
    "\n",
    "print(\n",
    "    'R2: {:.2f}, MSE: {:.2f}, MAE: {:.2f}'.format(\n",
    "        r2_score(y_test, y_test_pred),\n",
    "        mean_squared_error(y_test, y_test_pred),\n",
    "        mean_absolute_error(y_test, y_test_pred),\n",
    "    )\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:28: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_pred = pd.DataFrame(\n",
    "    {\n",
    "        'actuals': y_test,\n",
    "        'predictions': y_test_pred,\n",
    "    }\n",
    ")\n",
    "\n",
    "df_pred['error'] = np.abs(y_test - y_test_pred)\n",
    "\n",
    "fig, axs = plt.subplots(1, 2, figsize=(16, 5), sharey=False)\n",
    "\n",
    "df_pred.plot(\n",
    "    title='Actuals vs Predictions',\n",
    "    kind='scatter',\n",
    "    x='actuals',\n",
    "    y='predictions',\n",
    "    color='k',\n",
    "    ax=axs[0],\n",
    ")\n",
    "\n",
    "df_pred['error'].plot(\n",
    "    title='Distribution of Error',\n",
    "    kind='hist',\n",
    "    color='k',\n",
    "    ax=axs[1],\n",
    ")\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
